在我用C ++编写的程序中,我按如下方式打开一个文件:
std::ifstream file("testfile.txt");
此用法可以处理输入文件具有固定名称“testfile.txt”的情况。 我想知道如何允许用户输入文件名,例如“userA.txt”,程序会自动打开该文件“userA.txt”。
答案 0 :(得分:7)
使用变量。如果你还不清楚它们到底是什么,我建议找一个好的介绍book。
#include <iostream>
#include <string>
// ...
std::string filename; // This is a variable of type std::string which holds a series of characters in memory
std::cin >> filename; // Read in the filename from the console
std::ifstream file(filename.c_str()); // c_str() gets a C-style representation of the string (which is what the std::ifstream constructor is expecting)
如果文件名中可以包含空格,那么cin >>
(在第一个空格和换行符处停止输入)将不会删除它。相反,您可以使用getline()
:
getline(cin, filename); // Reads a line of input from the console into the filename variable
答案 1 :(得分:3)
您可以使用argc
和argv
获取命令行参数。
#include <fstream>
int main(int argc, char* argv[])
{
// argv[0] is the path to your executable.
if(argc < 2) return 0 ;
// argv[1] is the first command line option.
std::ifstream file(argv[1]);
// You can process file here.
}
命令行用法为:
./yourexecutable inputfile.txt