文件打开方式:
模式标志 | 描述 |
ios::in | 读方式打开文件 |
ios:out | 写方式打开文件 |
ios::trunc | 把整个文件长度截断为0 |
ios::app | 在文件的尾部添加 |
ios::ate | 定位到文件尾 |
ios::binary | 二进制方式(默认是文本方式) |
以上打开方式, 可以使用位操作 | 组合起来
写入文本文件
#include <iostream>
#include <string>
#include <fstream> //文件操作
using namespace std;
//写入方式打开文本文件
void inFile() {
string name; //姓名
int age; //年龄
ofstream outfile; //写文件操作
//如果没有找到ios.txt这个文件名,那么就会自动创建这个文件
outfile.open("ios.txt", ios::out | ios::app); //在文件尾部写操作
//outfile.open("ios.txt", ios::out | ios::trunc); //把整个文件长度截断为0
//outfile.open("ios.txt", ios::out | ios::ate); //定位到文件尾
while (1) {
cout << "请输入姓名:[Ctrl+z退出]";
cin >> name;
if (cin.eof()) { //输入ctrl+z
cout << "已结束输入!" << endl;
break;
}
outfile << name << "\t"; //把name变量的数据写入文本里
cout << "请输入年龄:";
cin >> age;
outfile << age << endl; //把age变量的数据写入文本里
}
outfile.close(); //关闭文件
}
int main(void) {
inFile();
system("pause");
return 0;
}
读取文件操作
#include <iostream>
#include <string>
#include <fstream> //文件操作
using namespace std;
//读取方式打开文本文件
void readFile() {
string name;
int age;
ifstream readfile; //读文件操作
readfile.open("io.txt"); //打开文件
if (readfile.fail()) {
cout << "打开文件出错!" << endl;
system("pause");
exit(1);
}
while (1) {
//从文件中读取数据保存到name变量里
//如果读到空格或制表符,会自动跳过
readfile >> name;
if (readfile.eof()) { //如果读到文件结束符,就跳出循环
break;
}
cout << "姓名:" << name << "\t";
readfile >> age;
cout << "年龄:" << age << endl;
}
readfile.close(); //关闭文件
}
int main(void) {
readFile();
system("pause");
return 0;
}