c++ - 防止在我的行 C++ 的末尾打印额外的空格

标签 c++ whitespace cout cin

所以我正在接受输入

string input,word;
while(getline(cin, input)) {
 stringstream ss; 
 ss<<input
 while(ss >> word)
 ...

然后打印我想要的东西 cout <<word<<" ";

但是,当我这样做时,它会在每行的末尾创建一个额外的空格,我不希望这样。如果我不放那个空格,那么当我打印出来时,单词之间就没有空格了。有没有更简单的方法来计算我想要的单词,以便它们自动间隔?我可以做些什么来防止每行末尾出现额外的空格。

最佳答案

测试循环外的第一个单词提取,然后使用前导空格继续循环:

std::string input;
while(getline(std::cin, input))
{
    std::istringstream ss(input);
    std::string word;
    if (ss >> word)
    {
        std::cout << word;
        while (ss >> word)
            std::cout << ' ' << word;
        std::cout << '\n';
    }
}

注意:为行完成添加了换行符。自行决定使用或删除。

关于c++ - 防止在我的行 C++ 的末尾打印额外的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37601555/

相关文章:

c++ - 如何更改指针的 cout 格式

c++ - 使用 std::cout 将 "\r"写入文件会保存之前覆盖的行

c++ - 做 fork() 时 cout vs printf

c++ - 更快的四元数 vector 乘法不起作用

c++ - 如何将正确的 Visual Studio 版本设置为 JIT 调试器?

javascript - 在 Rails 中创建的 JSON 字符串用加号 (+) 替换空格

python - 如果列表中的元素位于两个空格之间,则连接这些元素

c++ - 防止 GCC 在使用 -mavx 和 -mfma 编译时自动使用 AVX 和 FMA 指令

c++ - CMake,GLFW3 OSX 链接错误

perl - 如何在 Perl 中插入大量空格?