gpt4 book ai didi

c++ - 奇怪的 cout 行为

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:56:49 25 4
gpt4 key购买 nike

我在 Ubuntu 上编译了一个为 Windows 开发(并在 Windows 上运行)的程序。在 Ubuntu 上,我看到这段代码:

string s = values_[9];
cout << s << endl;
cout << s << "x\n";

产生这个输出:

high
xigh

第二行的预期输出是“highx”。我知道 values_[9] 的值最初是从一个文件(写在 Windows 上)中读取的。打印其他字符串似乎工作正常。

这是怎么回事?

最佳答案

运行命令,其输出通过 cat -A 进行管道传输。可能 s 的值,或者 endl 产生的输出给你一个 '\r' 字符,它通常将光标发回到行首。

编辑:进一步思考,杂散的 '\r' 几乎肯定在 s 中,而不是在 endl 产生的输出中。我原以为可能会发生一些有趣的语言环境问题,但是 s 等于 "high\r" 解释了这些症状。

EDIT2:如果您的系统没有 cat -A(它是 GNU 扩展),请尝试 cat -v 或者,如果您绝望了,od -c.

关于c++ - 奇怪的 cout 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7017593/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com