文件的读写和容器¶
要进行文件的读写,使用文件流
还要使用容器
- 头文件 fstream
- 类 ifstream ofstream
- 函数 getline
- 容器 vector
- vector
- vector
文件的读写¶
void test()
{
//一次读一个单词
string s;
ifstream in0("HarryPotter.txt");//文件输入流
in0 >> s;//流输入操作符,遇到空格就停了。一次只读一个单词。
//一次读一行
string line;
ifstream in1("HarryPotter.txt");//文件输入流
getline(in1, line);
//输出文件流
ifstream in2("HarryPotter.txt");//文件输入流
ofstream out("HarryPotter2.txt");//文件输出流
string s2;
while (getline(in2,s2)) {
out << s2 << "\n";
}
//整个文件读到一个string里
ifstream in3("HarryPotter.txt");//文件输入流
string s3,line3;
while (getline(in3,line3)) {
s3 += line3 + "\n";
}
}
容器¶
- C语言的数组有很多缺点,尽量不要使用C语言的数组
- C++里有vector(非常灵活的动态数组)。容器 箱子。
void test()
{
//C语言的数组
int arr[10];
for (int i = 0; i < 10; i++) {
arr[i] = i;
}
//C++
//vector是一个类,并且是一个模版。可以指定保存的类型。
vector<int> v; //创建对象
for (int i = 0; i < 10; i++) {
v.push_back(i);
}
// v.size()//是一个函数
for (int i = 0; i < v.size(); i++) {
cout << v[i] << endl; //对[]进行的重载 可以向数组一样使用。
}
//读取文件,把字符串放到一个容器里
vector<string> h;
ifstream in("HarryPotter.txt");//文件输入流
string line;
while (getline(in,line)) {
h.push_back(line);
}
for (int i = 0; i < h.size(); i++) {
cout << i << ":" << h[i] << endl; //对[]进行的重载 可以向数组一样使用。
}
}