C++ 根据用户输入打开文件

C++ 根据用户输入打开文件,c++,file-io,command-line,C++,File Io,Command Line,我希望在调用我的程序时提前获取输入文件名,而不是让我的程序向用户询问文件名 我见过许多例子,其中程序会要求用户输入,如: int main() { cout << "Enter file name: "; cin.get(); //run program return 0; } 换句话说,用户会在终端上键入如下内容: $/程序示例.txt 抱歉,如果我的问题像是ELI5提交 我想你们可能会明白我要做的事情的要点。使用: int main(int ar

我希望在调用我的程序时提前获取输入文件名,而不是让我的程序向用户询问文件名

我见过许多例子,其中程序会要求用户输入,如:

int main()
{
    cout << "Enter file name: ";
    cin.get();
    //run program
    return 0;
}
换句话说,用户会在终端上键入如下内容:

$/程序示例.txt

抱歉,如果我的问题像是ELI5提交

我想你们可能会明白我要做的事情的要点。

使用:

int main(int argc, char* argv[])
{
 ifstream inputfile;
 if(argc == 2)
  inputfile.open(argv[1]);
 else
  cout<<"Please nenter filename as command line argument!\n";
 //run program
 return 0;
}
intmain(intargc,char*argv[])
{
ifstream输入文件;
如果(argc==2)
open(argv[1]);
其他的
不能使用:

intmain(intargc,char*argv[])
{
ifstream输入文件;
如果(argc==2)
open(argv[1]);
其他的
cout您需要使用:

inputfile.open(argv[1]);
但是,我建议在程序中添加检查

int main(int argc, char* argv[]){
    if ( argc < 2 )
    {
       cerr << "Not enough arguments.\n";
       return EXIT_FAILURE;
    }

    // There is an argument. Use it.
    ifstream inputfile;
    inputfile.open(argv[1]);

    //run program
    return 0;
}
intmain(intargc,char*argv[]){
如果(argc<2)
{
cerr您需要使用:

inputfile.open(argv[1]);
但是,我建议在程序中添加检查

int main(int argc, char* argv[]){
    if ( argc < 2 )
    {
       cerr << "Not enough arguments.\n";
       return EXIT_FAILURE;
    }

    // There is an argument. Use it.
    ifstream inputfile;
    inputfile.open(argv[1]);

    //run program
    return 0;
}
intmain(intargc,char*argv[]){
如果(argc<2)
{

cerr
intmain(intargv,char*argc[])
应该是
intmain(intargc,char*argv[])
@AhmedAkhtar,谢谢你指出错误。现在已经修复了。是的,我觉得自己很笨,因为我已经检查过退出程序,但我不理解程序输入的方式。谢谢。@DeadSupra,如果你想继续编程,你最好长点厚皮。像这样的事情会经常发生:)
int main(int-argv,char*argc[])
应该是
int-main(int-argc,char*argv[])
@AhmedAkhtar,谢谢你指出错误。现在已经修复了。是的,我觉得自己很笨,因为我已经检查过退出程序,但我不理解程序输入的方式。谢谢。@DeadSupra,如果你想继续编程,你最好长点厚皮。类似的事情会经常发生:)欢迎使用堆栈溢出。如果此答案或任何其他答案解决了您的问题,请将其标记为。欢迎使用堆栈溢出。如果此答案或任何其他答案解决了您的问题,请将其标记为。