c++ - ifstream::open() 函数使用字符串作为参数

标签 c++ string fstream ifstream

<分区>

我正在尝试制作一个程序,询问用户想要读取的文件,当我尝试 myfile.open(fileName) 时我在该行收到错误消息:“没有匹配函数来调用 std::basic_ifstream<char, std::char_traits<char> >::open(std::string&)'”。

string filename;
cout<<"Enter name of file: ";
cin>>filename;
ifstream myFile;
myFile.open(filename); //where the error occurs.
myFile.close();

最佳答案

在以前的C++版本(C++03)中,open()的第一个参数只有一个const char *,而不是std::字符串。正确的调用方式是:

myFile.open(filename.c_str());

不过,在当前的 C++ (C++11) 中,该代码没有问题,所以看看您是否可以告诉您的编译器启用对它的支持。

关于c++ - ifstream::open() 函数使用字符串作为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15179924/

相关文章:

c++ - 在 C++11 时钟之间转换

c++ - Arduino - 如何编写按名称和编号定义使用的引脚的宏,并在别处使用引脚时抛出编译器错误

swift - 字符串(contentsOfURL :) in Swift 3

c++ - 有人可以帮我并行化这个 C++ 代码吗?

javascript - 如何使用javascript从字符串中解析函数名称?

c - 字符指针数组打印垃圾

c++ - C++编译错误

c++ - 从文件写入类型类的 vector

c++ - 将整数读取和写入文件的程序

c++ - 通过 boost 获取自本地时间上午 8 点以来耗时