i'm working on a project and i really want to know if c++ provides to print out colored text or not.
thx

Recommended Answers

As far as I know, this can be accomplished. Printing to a hardware printer is simply a level of abstraction that can be accomplished via printer drivers, etc. I did a quick Google search and came up with this ... I don't know if it will be of much help …

Jump to Post

mmhmmm, those are all nice and good until you use vc6++ where you can only create console applications.

here are some api calls you can use instead.

hwnd_type { STD_INPUT_HANDLE, STD_OUTPUT_HANDLE, STD_ERROR_HANDLE}
GetStdHandle(hwnd_type)
SetConsoleCursorPosition (handle, cordinates)
SetConsoleTextAttribute(handle, color)

** there a too many to list... so im …

Jump to Post

All 6 Replies

As far as I know, this can be accomplished. Printing to a hardware printer is simply a level of abstraction that can be accomplished via printer drivers, etc. I did a quick Google search and came up with this ... I don't know if it will be of much help to you: http://www.programmersheaven.com/zone3/cat973/21965.htm

msdn.com "C++, Printers"

if you mean print as in output to the screen, check out the other thread above.

You mean to the paper or the screen.

if you want on the screen use conio.h

Colors
------

0    BLACK          /* dark colors */
1    BLUE
2    GREEN
3    CYAN
4    RED
5    MAGENTA
6    BROWN
7    LIGHTGRAY

8     DARKGRAY       /* light colors */
9     LIGHTBLUE
10    LIGHTGREEN
11    LIGHTCYAN
12    LIGHTRED
13    LIGHTMAGENTA
14    YELLOW
15    WHITE

1.textbackground(int) to change the background color
2.textcolor(int) to change text color

Now you can call any to the above funtions as below:
textcolor(2); //green color
textcolor(BLUE); //blue text color( see the above list for more colors)

in C++ sometimes you will have to call clrscr() to clear the screen before the changes will become visible.

if you call clreol() [clear till end of line] only that line will be affected.Then when new text is typed on the next line sometimes the changes will remain other wise the old settings.

This varies from complier to compiler.I have no idea why.

gotoxy(int x,int y); //shift text cursor location, starts at 1,1

Helps ? :!: :idea:

You're right Fire Net.

The colour list is ok. you know that's why i use printf/scanf

In <conio.h> you may find: cprintf(...);cscanf(...) with the same paramters as ...scanf() and ...printf() functions. The difference is that it reads and writes in colours! The textcolor is changed through textcolor() function described by Fire Net. Also, keep in mind that you can make the text blink!: textcolor(BLUE+BLINK). clrscr(void) clears the screan and clreol erases the current line. gotoxy(int x,int y) sets the screen coordinates(where to write) wherex(void);wherey(void) return screen coordinates x=wherex(); I nearly forgot: cputs(char *s) writes a coloured string and cgets(char *s) reads a colour string. In <conio.h> there are even more functions:
-getch(void) gets a character - can be used to stop program execution until a key is pressed----!!!!does not echo on screen
-getche(void) is exactly the same but echos on screen.
-ungetch(void) sends the las read characte back to stdin making it the next character to be read
-kbhit(void) tests if a key was pressed--useful in loops:
while (!kbhit()) putch("a");
-putch(char c) writes the character on screen

I can't remember anything else!!!!! :D

mmhmmm, those are all nice and good until you use vc6++ where you can only create console applications.

here are some api calls you can use instead.

hwnd_type { STD_INPUT_HANDLE, STD_OUTPUT_HANDLE, STD_ERROR_HANDLE}
GetStdHandle(hwnd_type)
SetConsoleCursorPosition (handle, cordinates)
SetConsoleTextAttribute(handle, color)

** there a too many to list... so im not going too. However, a complete list can be found in the MSDN.

you need to include windows.h for this.

mmhmmm, those are all nice and good until you use vc6++ where you can only create console applications.

I know they won't work in Visual C but I'm a Borland C++ (for DOS) user. :!:

Be a part of the DaniWeb community

We're a friendly, industry-focused community of 1.21 million developers, IT pros, digital marketers, and technology enthusiasts learning and sharing knowledge.