home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fresh Fish 9
/
FreshFishVol9-CD2.bin
/
bbs
/
util
/
cout-1.00.lha
/
Cout
/
English
/
cout.c
< prev
next >
Wrap
C/C++ Source or Header
|
1993-08-04
|
3KB
|
88 lines
#include <stream.h>
#include <string.h>
void usage ()
{
cout << "\ncout (c) by Harald Pehl in 1993\n"
"Synthax: cout [string]\n"
"Within the string you can use several control-characters\n\n"
"\t\\a: Beep \\b: Backspace\n"
"\t\\f: Form feed \\n: New line\n"
"\t\\r: carrage return \\t: Tab\n"
"\t\\v: Vertical-tab \\\\: print \'\\\'\n"
"\t\\d: Bold on \\k: Italic on\n"
"\t\\u: Underlined on \\i: Invers on\n"
"\t\\x: Reset to defaults\n\n"
"If there\'s no <string> cout prints an empty line.\n\n"
}
void main (int argc, char **argv)
{
if (argc == 2)
{
char *arg = *++argv;
if (*arg == '?')
{
usage ();
return;
}
char *str = 0;
int a, s, size = strlen (arg);
for (a = 0 ; a < size ; a++) // Calculate the length
{ // of arg = *++argv...
if (*(arg+a) == 92)
{
switch (*(arg+a+1))
{
case 'd':
case 'k':
case 'u':
case 'i':
case 'x': size += 3;
}
}
}
str = new char[size]; // ...and ask for
if (str == 0) // enough memory for
{ // the copy 'str'
cout << "Zeichenkette zu lang !!\n";
return;
}
for (a = 0, s = 0 ; a < size ; a++, s++) // Look for control-characters
{ // in arg and copy them to str
if (*(arg+a) == 92)
{
switch (*(arg+a+1))
{
case 'a': *(str+s) = '\a'; a++; break;
case 'b': *(str+s) = '\b'; a++; break;
case 'f': *(str+s) = '\f'; a++; break;
case 'n': *(str+s) = '\n'; a++; break;
case 'r': *(str+s) = '\r'; a++; break;
case 't': *(str+s) = '\t'; a++; break;
case 'v': *(str+s) = '\v'; a++; break;
case 92 : *(str+s) = '\\'; a++; break;
case 'd': strcat (str, "\x9b""1m"); a++; s+=2; break;
case 'k': strcat (str, "\x9b""3m"); a++; s+=2; break;
case 'u': strcat (str, "\x9b""4m"); a++; s+=2; break;
case 'i': strcat (str, "\x9b""7m"); a++; s+=2; break;
case 'x': strcat (str, "\x9b""0m"); a++; s+=2; break;
default : break;
}
}
else
*(str+s) = *(arg+a);
}
cout << str;
delete [] str;
}
else if (argc == 1)
cout << "\n";
else
usage ();
}