tf.*_*.rz -4 c++ file-io filepath
我想知道是否有一种C++方式打开文件并逐行读取输入.
我遇到了以下代码来完成任务:
#include <iostream>
#include <fstream>
using namespace std;
int main () {
ifstream myfile;
myfile.open ("example.txt");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我鼓励不要使用任何C函数或命令.
问题是,我的"example.txt"是一个字符串的形式,并使用str.c_str()是一个C函数,所以我想我有两种方法来解决这个问题.
有没有其他方法可以逐行读取文件中的输入?也许使用一些接受字符串作为文件路径参数的东西?有没有C++的做事方式?:)
或者,是否有另一种方法将字符串转换为const char*,这是myfile.open()函数需要的?
提前谢谢了!
编辑:我缺乏实践和研究使我认为c_str()是一个C函数,而事实并非如此.我很抱歉.既然不是我找到了答案.
C++ 11的fstream构造函数接受string.在大多数情况下,您希望使用fstream构造函数,而不是.open()- 您保存一行和一个函数调用.
要逐行读取文件,您应该使用std::getline().
还要注意,string::c_str()仍然是C++函数,而不是C语言,以及fstream构造函数const char *.大多数(如果不是全部,我不是100%肯定)C标准库函数也包含在C++标准中.