文件路径名和用户输入
File Path Name and User Input
我试图让用户输入我的程序要读取的文件的文件路径。但是,当我尝试编译代码时,它出错,并出现以下错误:没有匹配的函数来调用"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)的路径。
相关文章:
- C++如何通过用户输入删除列表元素
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- 如何使用用户输入在C++中正确填充2D数组
- C++MySQL C api用户输入行
- 用户定义函数中的指针和输入
- 如何只允许用户输入正整数
- C++如何计算用户输入的数字中的偶数位数
- 通过for循环使用用户输入填充列表
- 这是我尝试让用户将值输入到数组中.然后将其隐藏为大量的星号
- 在C++中,我如何接受不同于同一行的用户输入
- 如果用户输入无效,如何使用字符串变量-C++重复输入命令
- 当用户键入分隔符时,停止getline()输入
- 通过错误处理,在C++中可靠地获得用户十六进制输入
- 当用户在qtablewidget中输入单元格时,如何获得信号?C++
- 显示基于用户输入的整数的字符
- 根据用户输入用字母填充矢量,并将"开始"和"结束"放在四肢
- 我试图制作一个程序,要求用户输入问题和答案,但程序循环不正确
- 如果用户没有输入任何内容或输入错误,如何重新输入用户的输入?
- 为什么在代码块中执行时会跳过输入用户输入的行?
- 使用 for 循环在数组中输入用户