C++ 如何从终端读取.txt文件,然后从文件中提取内容?

C++ 如何从终端读取.txt文件,然后从文件中提取内容?,c++,linux,file-io,C++,Linux,File Io,我想使用C++来提取要解析的.txt文件(将从终端指向该文件)的内容,但我不确定如何执行此操作?我知道我们有 ./a.out < file.txt /a.outs1; 标准:cin>>s2; std::cout您可以获取文件名作为main参数的输入,并打开该文件的std::ifstream int main(int argc, char* argv[]) {  std::ifstream file(std::string(argv[1])); if (file.is_op

我想使用C++来提取要解析的
.txt
文件(将从终端指向该文件)的内容,但我不确定如何执行此操作?我知道我们有

./a.out < file.txt
/a.out

然后将
file.txt
放入标准输入,但随后我感到困惑,因为我不知道如何访问文件内容来解析它,等等。

您可以将定向输入视为cin的输入。假设我有以下文件
input.txt

Hello
World
您可以像这样运行可执行文件

/a

Hello
World
我可以做类似的事情

std::string s1;
std::string s2;
std::cin >> s1;
std::cin >> s2;
std::cout << s1 << s2 << "\n";
std::字符串s1;
std::字符串s2;
标准:cin>>s1;
标准:cin>>s2;

std::cout您可以获取文件名作为
main
参数的输入,并打开该文件的
std::ifstream

int main(int argc, char* argv[]) { 
    std::ifstream file(std::string(argv[1]));
    if (file.is_open()) {
        //read input
    }
}

您可以调用
/a文件名
。要阅读
文件
,您可以像阅读
std::cin
(参见NickLamp的答案)一样阅读。

谢谢!不过,对于只有几行的文本文件来说,这似乎非常可行。对于一个有100行左右行的.txt文件,如何做到这一点?是的,这适用于任何输入大小。如果您需要从一个非常大的文件中读取,您可以始终使用while(cin)来保持从标准输入中读取,直到您到达输入的末尾。