文件路径名和用户输入

File Path Name and User Input

本文关键字:输入 用户 路径名 文件      更新时间:2023-10-16

我试图让用户输入我的程序要读取的文件的文件路径。但是,当我尝试编译代码时,它出错,并出现以下错误:没有匹配的函数来调用"std::basic_ifstream::open(std::string&)"。当我直接输入文件而不是使用 getline 或 cin 时,代码工作正常,没有错误。我不知道问题出在哪里。有什么建议吗?

int main()
{
 ifstream input_file;
 string file_name;
 cout<< "Please input file path to PostFix arithmetic expressions filen";
 getline(cin, file_name);
 input_file.open(file_name);
 read_and_evaluate(input_file);
}
您需要

编译为 C++11 才能获得采用std::string参数的ifstream构造函数或open成员函数。对于 g++,请使用-std=c++11选项。

在 C++03 中,iostream 构造函数仅支持 C 字符串,您可以通过 std::string::c_str() 获取。

请注意,无论 C 字符串还是 std::string ,在 Windows 中,这将无法打开路径中包含非 ANSI 字符的文件,除非您首先缩短 DOS 8.3 路径项(纯 ASCII)的路径。