c++写一个程序,计算输人正文中(即从键盘输入的一个字符流)的空格数、制表符数和换行符数。提示:输人正文是指从键盘输人的一个字符流,在UNX系统,字符流可按Crl+I结束,微机系统一般可按Crl+Z结束.
时间: 2024-10-20 08:06:16 浏览: 18
C++实现从输入中读取字符串
在C++中,你可以创建一个简单的控制台程序来统计输入文本中的空格、制表符和换行符。这里是一个基本的示例,它使用标准库函数来读取用户输入并计数非打印字符:
```cpp
#include <iostream>
#include <cctype> // 包含处理字符类型的头文件
int main() {
std::string input;
int space_count = 0, tab_count = 0, newline_count = 0;
std::cout << "请输入文本(按Ctrl+D (Unix) 或 Ctrl+Z (Windows) 结束输入):" << std::endl;
// 使用std::getline()读取一行直到遇到EOF标志
while (std::getline(std::cin, input)) {
for (char ch : input) {
if (ch == ' ') { // 空格
space_count++;
} else if (ch == '\t') { // 制表符
tab_count++;
} else if (ch == '\n') { // 换行符
newline_count++;
}
}
}
std::cout << "空格数: " << space_count << std::endl;
std::cout << "制表符数: " << tab_count << std::endl;
std::cout << "换行符数: " << newline_count << std::endl;
return 0;
}
```
在这个程序中,我们首先声明三个整数变量分别用于存储空格、制表符和换行符的数量。然后,我们使用`std::getline()`逐行读取用户的输入,并遍历每个字符,检查是否为空格、制表符或换行符。
当用户输入完成后,它们通常会按下特定的终止符(如Unix中的Ctrl+D或Windows中的Ctrl+Z),这将导致`std::getline()`停止接收输入。最后,我们输出统计结果。
阅读全文