如何读取命令行文件名,如“ ./program 因此,我有一个程序正在C ++的树莓派上通过命令行运行。我知道我已经可以在命令行中传递参数了,但是我需要使用cin传递它,但是我无法使其正常工作。 通常,我会使用args,并在命令行上使用./program filename这样的格式,但是我必须使用此格式./program int main(int argc, char *argv[]) { cout << "Matching Brackets: NAME" << endl; string line; string fname; cin >> fname; ifstream myfile; myfile.open(fname); if (myfile.is_open()) { while ( getline (myfile,line) ) { int num = valid(line); if(num >= 0) cout << valid(line) << " "; } } cout << endl; myfile.close(); return 0; } [我正在尝试让cin获取文本文件的实际文件名,并在fstream中使用该文件名打开文件并通读它以执行操作,但是我无法通过该方法打开它,而且我还没找到任何关于那样做的信息。 因此,我有一个程序正在C ++的树莓派上通过命令行运行。我知道我已经可以在命令行参数中进行传递了,但是我需要使用cin来传递它,但是我无法......> 当您将程序用作时 ./program < filename 您只需要担心从stdin/std::cin中读取内容。main可以简化为: int main(int argc, char *argv[]) { cout << "Matching Brackets: NAME" << endl; string line; while ( getline (std::cin, line) ) { int num = valid(line); if(num >= 0) cout << num << " "; // No need to call valid(line) again; } cout << endl; return 0; }

问题描述 投票:0回答:1

因此,我有一个程序正在C ++的树莓派上通过命令行运行。我知道我已经可以在命令行中传递参数了,但是我需要使用cin传递它,但是我无法使其正常工作。

通常,我会使用args,并在命令行上使用./program filename这样的格式,但是我必须使用此格式./program

int main(int argc, char *argv[])
{

    cout << "Matching Brackets: NAME" << endl;
    string line;
    string fname;
    cin >> fname;

  ifstream myfile; 
  myfile.open(fname);


  if (myfile.is_open()) {

      while ( getline (myfile,line) )
      {
          int num = valid(line);
          if(num >= 0)
            cout << valid(line) << " ";

}


      }
      cout << endl;
      myfile.close();
      return 0;
  }

[我正在尝试让cin获取文本文件的实际文件名,并在fstream中使用该文件名打开文件并通读它以执行操作,但是我无法通过该方法打开它,而且我还没找到任何关于那样做的信息。

c++ command-line arguments command cin
1个回答
0
投票

当您将程序用作时

© www.soinside.com 2019 - 2024. All rights reserved.