嘿伙计们,我想知道是否有人可以向我指出这一点。我目前正在尝试显示日期&时间在cmd提示符的右上角,但我得到的是其他字符然后我要求的内容。这就是我到目前为止所拥有的
time_t rawtime;
struct tm * timeinfo;
char buffer[80];
time(&rawtime);
timeinfo = localtime(&rawtime);
// this displays "23 Date:etcetcetc"
cout << "\n\n\n\n\n\n\n\n\n\n\n\n";
cout << strftime(buffer, 80, "\t\t\t\t\t\t\tDate: %d/%m/%Y", timeinfo);
puts(buffer);
// and this displays "16Time:etcetcetc"
cout << "\t\t\t\t\t\t\t";
cout << strftime(buffer, 80,"Time: %I:%M:%S \n", timeinfo);;
puts(buffer);
如果你能看到它给我的评论,但第一行增加了23而另一行增加了16,我做错了什么?
亲切的问候!
JB
答案 0 :(得分:1)
cout << strftime(buffer, 80, "\t\t\t\t\t\t\tDate: %d/%m/%Y", timeinfo);
和
cout << strftime(buffer, 80,"Time: %I:%M:%S \n", timeinfo);
您正在将函数strftime
的结果发送到stdout(它是打印到缓冲区的字节数)。
而puts(buffer);
实际上输出了你的缓冲区。
答案 1 :(得分:1)
尝试替换此:
cout << strftime(buffer, 80, "\t\t\t\t\t\t\tDate: %d/%m/%Y", timeinfo);
用这个:
strftime(buffer, 80, "\t\t\t\t\t\t\tDate: %d/%m/%Y", timeinfo);