Follow along with the video below to see how to install our site as a web app on your home screen.
Anmerkung: This feature currently requires accessing the site using the built-in Safari browser.
Mit den Bordmitteln (sprich der Standardbibliothek) zunächst überhaupt nicht. Du musst auf plattformabhängige Methoden zurückgreifen oder eine plattformunabhängige Bibliothek verwenden, die diese Funktionalität bietet (z.B. ncurses).Problem:Ich möchte wissen, wie ich bei einzelne Zeichen die Farbe ändern kann.
/*
* output.cpp
* Some methods responsible to print out messages to the user
*/
#include <cstdlib>
#include <iostream>
#include <cstring>
#include "output.h"
#ifdef IS_WINDOWS
#include <windows.h>
#endif // Compile for Windows
using namespace std;
void message(const char* format, ...) {
if(quiet) return;
va_list argp;
va_start(argp, format);
cout << NAME << ": ";
writeText(&cout, format, &argp);
cout << endl;
}
void error(const char* format, ...) {
if(super_quiet) return;
va_list argp;
va_start(argp, format);
cerr << NAME << ": ";
#ifdef IS_WINDOWS
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED | FOREGROUND_INTENSITY);
writeText(&cerr, format, &argp);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED);
#else
cerr << "\033[0;31m";
writeText(&cerr, format, &argp);
cerr << "\033[0m" << endl;
#endif
}
void writeText(ostream* stream, const char* format, va_list* argp) {
int val_i;
char* val_c;
while(*format != '\0') {
if(*format == '%') {
format++;
switch(*format) {
case 'i':
val_i = va_arg(*argp, int);
val_c = new char[32];
snprintf(val_c, 32, "%i", val_i);
break;
case 'c':
val_c = va_arg(*argp, char*);
break;
default:
val_c = new char[2];
val_c[0] = *format;
val_c[1] = '\0';
}
(*stream).write(val_c, strlen(val_c));
} else {
(*stream).put(*format);
}
format++;
}
(*stream).flush();
return;
}
#if defined(_WIN32) || defined(_WIN64) || defined(_MSDOS)
#define IS_WINDOWS
#endif
#include <iosfwd>
#if defined(_WIN32) && !defined(__CYGWIN__)
# include <windows.h>
struct fgcolor {
enum fgcolor_enum_t {
black = 0,
blue = FOREGROUND_BLUE,
green = FOREGROUND_GREEN,
red = FOREGROUND_RED,
white = blue | green | red,
cyan = blue | green,
...
high = FOREGROUND_INTENSITY
};
};
struct bgcolor {
enum bgcolor_t {
black = 0,
blue = BACKGROUND_BLUE,
green = BACKGROUND_GREEN,
red = BACKGROUND_RED,
...
high = BACKGROUND_INTENSITY
};
};
#else
# error "sorry, not yet implemented"
#endif
struct _setcolor { int c; };
inline
_setcolor
setcolor(int c) {
_setcolor r = { c };
return r;
}
#include <iostream>
inline
std::ostream& operator<< (std::ostream& out, _setcolor color) {
HANDLE hStdout = ::GetStdHandle(STD_OUTPUT_HANDLE);
if (!::SetConsoleTextAttribute(hStdout, color.c))
// hm, that didn't work.
std::cerr << "error: " << ::GetLastError() << std::endl;
return out;
}
int main(int argc, char *argv[])
{
std::cout << setcolor(fgcolor::red | bgcolor::green | bgcolor::high)
<< "Hallo,"
<< setcolor(fgcolor::red) << "welt" << std::endl;
std::cin.get();
return 0;
}
Jegliche Kombinationen der Grundfarben rot, grün, blau. Kunstunterricht Farbenlehre.. (siehe z.B. http://www.ipsi.fraunhofer.de/~crueger/farbe/farb-misch.html)Danke deepthroat
es hat fuktioniert.
ich strebe nach mehr wissen:
wie kann ich neue Farben definieren?
also, was kann ich anstadt den "..." einfügen