使用 getchar() 输入字符的最有效方法,就像 cin 中没有换行符和空格字符一样C++

Most efficient way to input char using getchar() just like cin without new line and whitespace chars in C++

本文关键字:字符 换行符 空格 C++ 一样 就像 输入 getchar 有效 使用 方法      更新时间:2023-10-16

我的问题是在输入上使用getchar()函数在输出上出现空格和新行()。使用 cin 时,输出上不可见空格和换行符。

以下是实现:

while (tmpChar = getchar())
{
cout << tmpChar;
}

以及使用 CIN 的实现:

while (cin >> tmpChar)
{
    cout << tmpChar;
}

这是输出的差异(输出红色方块):https://i.stack.imgur.com/W4Lyv.png

我正在寻找删除这些空格和新行的最佳方法。

感谢您的回复!

getchar只会从stdin中提取下一个字符,无论它是否为空格。在将字符发送到stdout之前,您必须检查字符是否为空格。像这样:

while (tmpChar = getchar())
{
    if (!isspace(tmpChar))
        cout << tmpChar;
}

您需要#include <cctype>才能获得isspace定义。