Qt4 دارای کلاسها و ابزارهای مختص به خود برای استفادهی برنامهنویسان است. این ابزارها شامل کلاسهایی برای کار با رشته ها فایلها و بانکهای اطلاعاتی میباشد که در این جا سعی می کنیم تعدادی از آنها را بررسی کنیم.
در Qt4، هم می توان برنامه های گرافیکی و هم متنی نوشت که در این جا از برنامه های متنی و کنسولی نیز برای نشان دادن این کلاسها استفاده شده است.
ورودی و خروجی اطلاعات در C++
واحد ورودی که ما در اینجا استفاده می کنیم صفحه کلید می باشد و واحد خروجی مورد استفاده نیز صفحه نمایش خواهد بود. برای دریافت اطلاعات از صفحه کلید ، زبان ++C دستوری به نام cin را در اختیار ما قرار داده است، و دستور ارسال اطلاعات به صفحه نمایش cout است. توسط این دو دستور شما می توانید با نمایش اطلاعات بر روی صفحه نمایش و دریافت اطلاعات از صفحه کلید با کاربری که از برنامه شما استفاده می کند، در ارتباط باشید.
دستور خروجی
دستور cout همراه علامت >> به کار می رود.
cout<<"This is a test";
دستور فوق عبارت This is a test را بر روی صفحه نمایش چاپ می کند.
cout<<5120;
دستور فوق عدد ۵۱۲۰ را بر روی صفحه نمایش ظاهر می سازد.
cout<<x;
دستور فوق محتویات متغیر x را به صفحه نمایش می فرستد.
علامت >> با نام عملگر درج شناخته می شود و اطلاعاتی که بعد از این علامت قرار می گیرند به واحد خروجی منتقل می شوند. در مثال های فوق یک عبارت رشته ای (This is a test) یک عدد (۵۱۲۰) و یک متغیر (x) به واحد خروجی ارسال شدند. توجه داشته باشید که در اولین مثال عبارت This is a test بین دو علامت (“) قرار گرفت ، چون این عبارت حاوی رشته ای از حروف می باشد؛ هرگاه که بخواهیم رشته ای از حروف را به کار ببریم باید آنها را بین دو علامت (“) قرار دهیم تا با نام متغیرها اشتباه گرفته نشوند. به عنوان مثال، دستور زیر:
cout << " Hello";
عبارت Hello را بر روی صفحه نمایش ظاهر می سازد ولی دستور زیر:
cout<<Hello;
محتویات متغیری با نام Hello را بر روی صفحه نمایش چاپ می کند.
دستور ورودی
دستور cin همراه علامت << به کار می رود.
int age; cin>>age;
دستورات فوق ابتدا فضایی در حافظه برای متغیر age در نظر می گیرند، سپس برنامه منتظر وارد کردن عددی از صفحه کلید می ماند تا عدد وارد شده را در متغیر age قرار دهد. cin هنگامی قادر به دریافت اطلاعات از صفحه کلید خواهد بود که، کلید Enter بر روی صفحه کلید فشرده شود. به عنوان مثال اگر بخواهیم عدد ۱۶ در متغیر age قرار گیرد ابتدا عدد ۱۶ را تایپ کرده سپس دکمه Enter را فشار می دهیم.
علامت >> با نام عملگر استخراج شناخته می شود و اطلاعاتی که از واحد ورودی دریافت می شود در متغیری که بعد از این علامت می باشد، قرار می گیرند. ضمناً شما می توانید توسط یک دستور cin بیش از یک متغیر را مقدار دهی کنید.
چاپ متن در Qt:
این برنامه یک رشتهی متنی را به صورت خروجی در کنسول چاپ می کند.
#include <iostream> int main() { std::cout << "console application\n"; }
دستور std::cout تابع cout را از کتابخانهی std فراخوانی میکند. حالا مثال فوق را با استفاده از یک SIL Standard Template Library می نویسیم. در این صورت ابتدا رشته به یک کلاس موقت کپی و سپس محتوای آن کلاس به خروجی پاس داده می شود.
#include <QTextStream> int main() { QTextStream out(stdout); out << "console application\n"; }
در برنامهی بالا به جای std::cout از out استفاده شده است. بعد از اجرای برنامه فوق خروجی به شکل زیر نمایان خواهد شد:
نحوهی کامپایل برنامه در جلسه قبل توضیح داده شد. اما به طور اجمالی کد های زیر را در محل فایل cpp اجرا نمایید.
qmake -project qmake make
برای اجرای برنامهی کامپایل شده ابتدا دستور sudo chmod +x را اجرا نموده تا فایل ایجاد شده مجوز اجرایی داشته باشد وسپس برنامه کامپایل شده را اجرا کنید.
در قسمت بعد به نحوهی چاپ خروجی در فایل متنی خواهیم پرداخت.
4 دیدگاه برای این نوشته:
جعفر:
۲۶ مرداد ۱۳۹۲
آقا ممنون
آموزنده بودولی سوال این عبارت دقیقا معناش چیه؟
QTextStream out(stdout);
داره یه متغییر تعریف میکنه؟ هر کدوم از اون کلمات چه جایگاهی دارند؟ممنون
حجت:
۰۲ شهریور ۱۳۹۲
خب. ببین یه مفهومی وجود داره به نام «جریان» یا stream که این جریانها هم میتونن ورودی باشن. هم خروجی.
مثلا شما جریانی به یک فایل رو تعریف میکنید. یا جریانی از کیبورد. یا جریانی به «خروجی استاندارد» یا «ورودی استاندارد» و بدون اینکه کاری داشته باشید که اینها از نظر ساختاری و پیاده سازی کاملا با هم متفاوت هستند، با اونها کار میکنید. مثلا برای نوشتن توی یک فایل دقیقا از همون دستوری استفاده میکنید که برای نوشتن در «خروجی استاندارد» استفاده میکنید.
خب.
این جریانها توی qt هم وجود دارند. مثلا «جریان متنی» که با QTextStream نشون داده میشه.
شما از کلاس QTextStream یک شی به نام out میسازید. در سازندهی کلاس QTextStream مشخص میکنید که میخواهید جریانی از چه چیزی درست کنید. مثلا در این دستوری که شما نوشتهاید جریان به خروجی استاندارد stdout یا همان console وصل میشه. و هرچیزی که توی این جریان بنویسید در خروجی ظاهر میشه. شما میتونستید این جریان رو به یه فایل وصل کنید و هرچیزی که توی این جریان مینویسید توی یه فایل ذخیره بشه…موفق باشید
matin:
۰۴ شهریور ۱۳۹۲
آقا دمت گرم واقعاً . کلى خوشحال شدم دیدم ادامه دادى . به نظرم حجم هر مقاله رو کمتر کن براى مثال توى هر مقاله فقط به یه دستور بپرداز در عوضش کاملاً اون دستور رو توضیح بده و حالت هاى مختلفش رو آموزش بده .Unix:
۰۴ شهریور ۱۳۹۲
احسان جان بهتره بیشتر بگی که چطور از این C++ ایی که بلدیم در QT استفاده کنیم و بحثتو بیاری روی توضیح کتاب خانه های QTممنون.