您的位置:首页 > 编程语言 > C语言/C++

C++简易文件读写

2012-05-16 23:02 162 查看
最近开始看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了,应该在最近就会写相关的博文。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: