C++ 如何打开用户在命令行上指定的文件?

C++ 如何打开用户在命令行上指定的文件?,c++,C++,假设您希望允许用户指定要在命令行上打开的文件。如果用户输入以下数据,如何实现这一点: /User/desktop/input.txt 然后如何将此目录转换为程序实际打开/读取的内容?只要打开(“路径”、权限、标志)就可以了。。您可以使用文件描述符进行读取或写入。如果您从命令行参数获取它,或者在程序中硬编码它,区别是什么? 只需使用open()。参数argc保存命令行参数的计数。如果不传递任何参数,则为1(argv[0]只是可执行文件的名称)。否则,其值为命令行参数的计数+1 #include &

假设您希望允许用户指定要在命令行上打开的文件。如果用户输入以下数据,如何实现这一点:

/User/desktop/input.txt


然后如何将此目录转换为程序实际打开/读取的内容?

只要
打开(“路径”、权限、标志)
就可以了。。您可以使用文件描述符进行读取或写入。

如果您从命令行参数获取它,或者在程序中硬编码它,区别是什么?
只需使用open()。

参数
argc
保存命令行参数的计数。如果不传递任何参数,则为1(
argv[0]
只是可执行文件的名称)。否则,其值为命令行参数的计数+1

#include <fstream>

int main (int argc, char **argv){
  if(argc>1){
    std::ifstream a(argv[1]); // first argument
    if(a){
      //file opened
    }
  }
}
有关更多信息,请参见。

就是方法

std::ifstream file(your_file_path);

if (!file) { return; } // check the file 

std::string line;
while (getline(file, line)) { /* do some process on line */ }

你需要单独的文件名吗?打开该特定文件需要整个路径。为什么需要拆分路径?如果只使用文件名而不使用路径,如何保证知道目录?这是正确的。我将修改我原来的问题。不清楚“在命令行上指定”是什么意思。您刚才提到命令行是因为您正在构建一个控制台应用程序,还是希望将命令行上的文件名/路径传递给您的程序?@user3064097:就这么简单
std::ifstream file(your_file_path);

if (!file) { return; } // check the file 

std::string line;
while (getline(file, line)) { /* do some process on line */ }