میخواستم بدونم ایا میشه خروجی های دستور cout رو
رنگی کرد . چون دستور textcolor فقط برای cprintf کاربرد داره
Printable View
میخواستم بدونم ایا میشه خروجی های دستور cout رو
رنگی کرد . چون دستور textcolor فقط برای cprintf کاربرد داره
برای چی نشه, فقط باید برنامه ای رو که نوشتی رو پلتفرم DOS - Standard باشهنقل قول:
اگه از کامپیلر های Borland C++ 4.5 , 5.02 یا Turbo C++ 4.5 استفاده میکنی باید این مراحل رو طی کنی
اگه از کامپایلر TC v3.0 استفاده می کنی دیگه نیازی به این کار ها نیست, خودش می فهمه:46:کد:ّFile -> New -> Project -> Platform (comboBox) ->DOS (standard)
ولی بهتره از همون دستور cPrintf استفاده کنی چون هم قوی تر از دستور cout هستش , هم سریعتر
0.002 میکرو ثانیه:31:
بجای 31 و 32 عددهای دیگه بذاری رنگهای دیگه رو هم میتونی بسازی.کد:cout << "\33[1;32m This is Green..." << endl;
cout << "\33[1;31m This is Red..." << endl;
سلام .براي من کار نکرد . ميشه يه بار ديگه توضيح بدين ؟نقل قول:
[HTML]نقل قول:
#include <iostream>
using namespace std;
int main()
{
cout << "\33[1;32m This is Green..." << endl;
cout << "\33[1;31m This is Red..." << endl;
return 0;
}
[/HTML]
برای من کار میکنه. البته تو لینوکس ولی تو ویندوز هم باید کارکنه. cout استاندارد هست.
سلام آزمایش کردم برای ویندوز کار نمی کنه نه بورلند و نه وی اس
تا جایی که می دونم اینجور کارا رو اگه بخوایم توی ویندوز و در ویژوال استادیو انجام بدیم باید حتما در محیط دات نت و فرمانهای مربوط به اون استفاده کنیم و با native c++ نمیشه
من قبلا یه همچین چیزی نوشته بودم
پس ديگه هيچ راهي نيست ؟ از تابع cprintf چجوري استفاده مي کنن ؟ تو Visual Studio ؟
بعضی کامپایلر ها توابع داخلی برای این منظور دارن، در این مورد مستندات کامپایلرتون رو ببینید
اگر وجورد نداشت برای ++C باید از API ها استفاده کرد البته اینی که میگم برای ویندوزه،
برای مثال این کد رو ببینید دو تا تابع قرار دادم یکی رنگ متن رو عوض میکنه (set_textcolor) و یکی رنگ پس زمینه (set_bkcolor)
کد:#include <windows.h>
#include <iostream>
using namespace std;
#define BLACK 0
#define BLUE 1
#define GREEN 2
#define CYAN 3
#define RED 4
#define MAGENTA 5
#define BROWN 6
#define LIGHTGRAY 7
#define DARKGRAY 8
#define LIGHTBLUE 9
#define LIGHTGREEN 10
#define LIGHTCYAN 11
#define LIGHTRED 12
#define LIGHTMAGENTA 13
#define YELLOW 14
#define WHITE 15
void set_textcolor(int color)
{
CONSOLE_SCREEN_BUFFER_INFO conBuf = {0};
int c = color;
GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &conBuf);
c &= 0x0F;
c |= (conBuf.wAttributes & 0xF0);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), c);
}
void set_bkcolor(int color)
{
CONSOLE_SCREEN_BUFFER_INFO conBuf = {0};
int c = color;
GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &conBuf);
c &= 0x0F;
c <<= 4;
c |= (conBuf.wAttributes & 0x0F);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), c);
}
int main()
{
set_textcolor(MAGENTA);
set_bkcolor(LIGHTCYAN);
cout << "hello world" << endl;
}
اقا برنامه خیلی جالبی نوشتید
این نوع کد نویسی مربوط به CLR می شه یا Win32 ؟ شما خودتون چه منبعی استفاده کردین؟
ممنون . اصلا فکر نمي کردم اين قدر پيچيده باشه رنگي چاپ کردن .
بي خيال شدم . همون سياه سفيد چاپ مي کنيم .