【问题标题】:strftime adds unwanted characters to what I'm trying to displaystrftime 将不需要的字符添加到我要显示的内容中
【发布时间】:2015-04-01 12:42:56
【问题描述】:

嘿伙计们,我想知道是否有人可以向我指出这一点。我目前正在尝试在 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);

如果您可以看到 cmets,它给了我我想要的东西,但在第一行添加了 23,在另一行添加了 16,我做错了什么?

亲切的问候!

JB

【问题讨论】:

    标签: c++ strftime


    【解决方案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);
    

    【讨论】:

    • 感谢大家辛苦了,简直不敢相信这么简单!
    【解决方案2】:
    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 的结果发送到标准输出(这是它打印到缓冲区的字节数)。

    puts(buffer); 实际上会输出你的缓冲区。

    【讨论】:

      猜你喜欢
      • 2017-01-07
      • 1970-01-01
      • 2010-11-17
      • 1970-01-01
      • 2017-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-21
      相关资源
      最近更新 更多