使用 getchar() 输入字符的最有效方法,就像 cin 中没有换行符和空格字符一样C++
Most efficient way to input char using getchar() just like cin without new line and whitespace chars in C++
我的问题是在输入上使用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
定义。
相关文章:
- 如何防止clang格式在流运算符调用之间添加换行符<<
- C/C++ - 查询平台相关的换行符(用于内存映射文件)
- 在 Stream C++ 文本之前有一个额外的换行符
- 流:CSV 文件中的换行符
- 如何在三元条件运算符中添加换行符和连接? :在 C++ 中
- 防止控制台在通道字符(在 c++ 中)中输入空格(即空格、制表符和换行符)
- 一次读取一个字符的文件,直到使用 read(2) 和 write(2) 换行符
- 读取文件内容时未定义的字符,文件末尾没有换行符
- 每隔n个字符打印一行换行符
- 如果字符串是从字符类型中给定的,则该字符串是否可以包含换行符
- 便携式字符换行符
- 如何从字符数组中去除换行符
- 使用 getchar() 输入字符的最有效方法,就像 cin 中没有换行符和空格字符一样C++
- C++:抓取文件的每个字符,忽略换行符和空格
- 检查字符是否为换行符
- 在字符数组中插入新的换行符
- 正在搜索换行符'n'字符串对象中的字符
- 在无符号字符数组中读取充满字符串(用换行符分隔)的文件(反之亦然)的最快方法是什么?
- 使用CFile检查换行符(换行字符)
- 将文件的前1000个字符读入缓冲区,将换行符转换为 ,并将字符串的地址位置存储为char*[]