C++ 处理不定数量输入数据的技巧:利用 EOF 检测输入结束
C++ 处理不定数量输入数据的技巧:利用 EOF 检测输入结束
在 OJ (Online Judge) 或编程竞赛中,你可能会遇到一些题目,其输入数据量并没有预先指定。不同于常见的先给出数据量再输入数据的方式,这类题目要求你能够处理不定数量的输入,直到遇到输入结束符号 EOF (End-of-File)。
问题描述
假设你需要读取一组不定数量的字符串,并将它们拼接成一个字符串输出。输入数据格式如下:
abcde
你需要将所有字符读取并拼接,最终输出:
abcde
C++ 解决方案:利用 cin 和 EOF
C++ 的标准输入流 cin 提供了一种便捷的方式来处理这种情况。当 cin 读取到 EOF 时,会返回一个特殊的状态,我们可以利用这个状态来判断输入是否结束。
以下是一个使用 C++ 实现的示例代码:cpp#include
int main() { std::string input; std::string result; // 当 cin 未读取到 EOF 时,循环读取输入 while (std::cin >> input) { result += input; } std::cout << result << std::endl; return 0;}
代码解析:
#include <iostream>和#include <string>: 引入必要的头文件,iostream用于输入输出流操作,string用于字符串操作。2.std::string input;: 声明一个字符串变量input用于存储每次读取的字符串。3.std::string result;: 声明一个字符串变量result用于存储拼接后的结果字符串。4.while (std::cin >> input): 这是一个循环语句,只要cin读取输入成功(即未遇到 EOF),循环就会一直执行。5.result += input;: 将读取到的字符串input拼接到result字符串的末尾。6.std::cout << result << std::endl;: 循环结束后,将拼接后的字符串result输出到标准输出流。
注意事项
- 其他分隔符: 上述代码默认使用空格或换行符作为字符串的分隔符。如果需要处理其他分隔符,例如逗号或分号,可以使用
getline(cin, input, ',')函数,其中第三个参数指定分隔符。* 输入方式: 此示例代码假设使用标准输入流cin进行输入。如果需要从文件或其他输入源读取数据,需要相应地修改代码。
希望这篇简短的教程能够帮助你理解如何在 C++ 中处理不定数量的输入数据,并利用 EOF 信号来判断输入结束。
原文地址: http://www.cveoy.top/t/topic/NzJ 著作权归作者所有。请勿转载和采集!