C++以EOF结尾读取多行字符串

tech2022-07-30  187

博文背景

一直想像cat >> hello.txt或者cat >> hello.txt <<- 'EOF'这个样子以EOF为结束符读取多行文本,搜了一些函数感觉都是曲线救国,不如自己从最基础的东西开始自己造。

具体操作

#include <iostream> using namespace std; int main() { char buff[1000]; int index=0; char temp; while(temp=getchar()) { if(temp != EOF) { buff[index]=temp; index++; } else { break; } } buff[index]='\0'; cout << buff << endl; return 0; }

效果展示

不过不明白的是为什么如果不是在行首按下Ctrl + D则需要按两次才会生效,我感觉可能是需要按下回车或者EOF才能把输入刷到“缓冲区”里面使程序能够读取成功。

最新回复(0)