如何通过键入 "a.out < textfilename.txt" 让 .out 文件通过终端读取文本文件

How to have a.out file read text file through terminal by typing "a.out < textfilename.txt"

本文关键字:文件 out 取文本 读取 txt 终端 何通过 lt textfilename      更新时间:2023-10-16

我是编程的新手,我找不到问题的答案。

这是我必须打开程序的代码,并在终端运行时读取我想要的文本文件:

using namespace std;
int main(int argc, string *argv[])
{
    string fileName;
    getline(cin, fileName);
    ifstream infile(fileName.c_str());

    int total[26] = {0};

    if (!infile)
    {
        cout << "Error opening file" << endl;
        return 0;
    }
    char b;
    while (infile.get(b))         
    {
        if (isalpha(b))     
        {
            b = toupper(b);   

            int index = b - 'A';  
            total[index]++;      
        }
    }

我可以运行程序并键入我要通过终端打开的文件,但是我的讲师的程序可以通过在终端中键入以下内容打开文件:

A.Out&lt;text.txt

当我使用getline而不是使用fstream时,它会读取文件,而不是整个文件(直到到达eof)。我不确定我应该如何编码。(提交了作业,这只是我自己的参考)

有人使用<字符重定向时,该文件变为标准输入。因此,cin将包含text.txt的内容。由于CIN是istream,您可以做:

while (cin.get(b)) {
   // what you've got now...
}