在 C 中从标准输入读取数据直到文件结尾 (EOF)
在 C 中处理用户输入时,通常有必要从标准输入 (cin) 读取数据,直到到达文件末尾 (EOF)。尝试读取直到 EOF 时,需要考虑某些限制和方法。
一个常见的误解是使用 cin.get(input, ' ') 读取数据直到 EOF 或空字符 (' ')遇到就可以达到想要的结果。然而,' ' 并不代表 EOF,这种方法会一直读取直到 EOF 或 ' ' 发生,以先到者为准。
要从 cin 读取数据直到 EOF,需要使用循环。 std::getline() 函数为此提供了一种有效的方法:
std::string line; while (std::getline(std::cin, line)) { std::cout << line << std::endl; }
std::getline() 读取 cin 中的输入并将其存储在指定的字符串变量中,默认分隔符为换行符。它返回一个布尔值,指示是否成功读取一行。当遇到 EOF 时,std::getline() 返回 false,导致循环终止。
虽然在读取直到 EOF 时需要循环似乎是一个限制,但重要的是要记住在 C 中, EOF 本身不是一个字符。因此,不可能简单地调用 std::getline() 来读取所有数据直到 EOF。
以上是如何在 C 中从标准输入读取数据直到 EOF?的详细内容。更多信息请关注PHP中文网其他相关文章!