C++简易文件读写
最近开始看C++了,以前在大一寒假时,本来就准备开始学C++的(大一上学期开了C++的课,很是喜欢),结果我姐一句"C++过时了,学Java吧"这样的话,误导了我,导致我大学从大一下学期开始一直到现在工作,主要都是使用的Java语言。实在令我汗颜,不过现在也决定边学习边写写博客。
1.C++文本写入
主要使用了处理输出的ofstream类,包含在fstream头文件中。
#include<iostream>
#include<fstream>
using namespace std;
void writeFile(){
ofstream outFile;
outFile.open("test.txt");
cout<<"Please input your name:";
char input[10];
cin >> input;
int age;
cout<<"Please input your age:";
cin >> age;
double money;
cout.setf(ios::fixed);
cout.precision(6);
cout<<"Please inpu your money:";
cin >> money;
double other = money * 0.925;
cout <<"Money:" << other << endl;
outFile << input << endl; //写入姓名
outFile << age << endl; //写入年龄
outFile << other << endl; //写入金钱
outFile.close();
}
int main(){
writeFile();
return 0;
}
上面是很简单的一段写入文件的代码。
首先创建一个输出类ofstream outFile;
打开一个文件outFile.open("test.txt");
然后是一些简单的输入信息。
cout.setf(ios::fixed)的意思是设置为定点输出格式。
cout.precision(6)的意思是将精度设为6位。
这里主要是学习一下指定精度的浮点输出。
另外 ofstream 可以和 cout一样的使用<<。 只不过ofstream是文件中输出数据,而cout是向控制台输出数据。
最后使用outFile.close()进行关闭。如果忘记关闭的话,也会在程序终止后自动关闭它。
2.C++文本读取
主要使用了处理输出的ifstream类,包含在fstream头文件中。
#include<iostream>
#include<fstream>
using namespace std;
void readFile(){
ifstream inFile;
inFile.open("test.txt");
if(inFile.is_open()){
char input[10];
inFile >> input;
int age;
inFile >> age;
double money;
inFile >> money;
cout << "ReadFile Complete" << endl;
cout << "Name:" << input << endl;
cout << "Age:" << age << endl;
cout << "Money:" << money << endl;
}
}
int main(){
readFile();
return 0;
}
同样的,读取文件使用ifstream类。
不过进行读取文件时,最后进行判断文件是否被打开,因为如果文件未被成功打开,将会在读取时出错。
这里采用inFile.is_open()进行判断。
如同ofstream一样,ifstream可以和cin一样使用 >> 。只不过前者用于向文件中读取数据,后者用于读取控制台的输入。
当然,也可以采用读取整行的方法。
例如: char line[81];
inFile.getline(line, 80);
如果是循环进行文件读取,则需要判断文件是否到达文件尾。
可以采用if(inFile.eof()){} 来判断是否到达EOF,然后采用else if(inFile.fail())用于检查EOF和类型不匹配。用于判断读取循环终止的原因,以进行其他的操作。
将两部分代码合运行效果如图所示:
PS:C++简易的文件读写就到这里了。本人毕业不久,经验有限,希望大家指出错误,一起进步。
另外,最近下班回家的晚上也开始使用JavaFX Scene Builder了,应该在最近就会写相关的博文。