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