C++ 处理不定数量输入数据的技巧:利用 EOF 检测输入结束

在 OJ (Online Judge) 或编程竞赛中,你可能会遇到一些题目,其输入数据量并没有预先指定。不同于常见的先给出数据量再输入数据的方式,这类题目要求你能够处理不定数量的输入,直到遇到输入结束符号 EOF (End-of-File)。

问题描述

假设你需要读取一组不定数量的字符串,并将它们拼接成一个字符串输出。输入数据格式如下:

abcde

你需要将所有字符读取并拼接,最终输出:

abcde

C++ 解决方案:利用 cin 和 EOF

C++ 的标准输入流 cin 提供了一种便捷的方式来处理这种情况。当 cin 读取到 EOF 时,会返回一个特殊的状态,我们可以利用这个状态来判断输入是否结束。

以下是一个使用 C++ 实现的示例代码:cpp#include #include

int main() { std::string input; std::string result; // 当 cin 未读取到 EOF 时,循环读取输入 while (std::cin >> input) { result += input; } std::cout << result << std::endl; return 0;}

代码解析:

  1. #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 信号来判断输入结束。

C++ 处理不定数量输入数据的技巧:利用 EOF 检测输入结束

原文地址: http://www.cveoy.top/t/topic/NzJ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录