C++笔记(12)——简单文件输入/输出

1、写入到文本文件

(1)#include <fstream>

(2)命名空间std

(3)声明ofstream对象,例如:ofstream outFile;

(4)将ofstream对象和文件联系起来,常用方法:outFile.open("carry.txt");如果文件carry.txt不存在,默认新建,如果已存在,默认将原有内如丢弃,此处容易发生危险。而且,有可能打开文件失败,对是否打开文件需要进行检验。

(5)像使用cout一样使用outFile,写入到文本文件carry.txt;

(6)关闭文件,outFile.close();不需要传递参数,关闭之前打开的文件。

对输入到文本的数字,也可以像cout一样设置有效位数和小数点位数,cout << setprecision (5);表示输出5位有效数字,但当数字较大时,易输出科学表示法的形式,可用fixed设置小数位数,方法:cout<<fixed; cout<<precision(2); cout<<setf(ios_base::showpoint); 即表示输出小数形式,且为两位小数。同样,输出的文本文件中也可以这样设置,只需将cout换成ofstream对象如outFile。

 

2、cin

在使用cin进行输入时,程序将输入视为一系列的字节,其中每个字节都被解释为字符编码。不管目标类型为什么,一开始输入的都是字符数据,之后进行转换。例如,如数 38.5 19.2,

(1)char ch;

cin>>ch;

输入和目标类型一致,不需要变换。

(2)int n;

cin>>n;

cin不断读取直到遇到非数字字符,即n = 38.

(3)double x;

cin>>x;

cin不断读入直到遇到第一个不是浮点数的字符,磁力中到空格即停止,x=38.5。

(4)char word[50];

cin>>word;

cin不断读入直到遇到空白字符(空格,回车,换行),此处将3、8、.、5存入,最后默认加入空字符。

 

cin.get()默认读取一位,用于丢弃回车或换行,cin.get(name,size)默认读取一行,cin.get(ch)默认读取一个字符。

 

3、读取文本文件

(1)#include <fstream>

(2)命名空间std

(3)声明对象,例如ifstream inFile;

(4)将对象与文件联系起来,inFile.open("test.txt");

判断文件是否打开:

if ( !inFile.is_open() )

{ exit(EXIT_FALLURE); }

此种判断方式需要头文件<stdlib.h>或<cstdlib>,EXIT_FALLURE用于和操作系统通信,exit()终止程序。也可以使用inFile.good()。

(5)像使用cin一样使用ifstream对象inFile,也可使用get()和getline()

(6)结合ifstream对象和eof()和fail()判断输入是否成功

程序读取文件时,不应该超过EOF,最后一次读取数字时遇到EOF,eof()将返回true;程序输入遇到类型不匹配问题是fail()将返回true,遇到EOF同样返回true。只有没有任何错误发生时good()才返回true。所以一般在输入后借此进行判断:

inFile>>value;

while(inFile.good() )

{ inFile>>value; }

if ( inFile.eof() )

cout<<"end"<<endl;

else if ( inFile.fail() )

cout<<"类型不匹配"<<endl;

else

cout<<"other reasons"<<endl;

(7)关闭文件,inFile.close();

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值