假设您要允许用户指定要在命令行上打开的文件。如果用户输入如下数据,如何实现这一目标:
/User/desktop/input.txt
如何将此目录转换为程序实际打开/读取的内容?
答案 0 :(得分:1)
参数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
}
}
}
要启动此程序,您可以在命令行上输入:
nameOfYourExecutable.exe /User/desktop/input.txt
有关更多信息,另请参阅here。
答案 1 :(得分:1)
std::ifstream就是这样。
std::ifstream file(your_file_path);
if (!file) { return; } // check the file
std::string line;
while (getline(file, line)) { /* do some process on line */ }
答案 2 :(得分:0)
只需open("path",permissions,flags)
就可以了。你可以使用文件描述符进行读写。
答案 3 :(得分:0)
如果从命令行参数中获取它,或者在程序中对其进行硬编码,那么它的干扰是什么? 只需使用open()。