C++ 简单文件输入输出 | 九七的C++教程

C++ 简单文件输入输出

一、介绍

实现功能:

文件的输入输出,就是用c++读取一个文件里面的内容或者用c++向一个文件中写入内容。文件输入输出的用处不言而喻,肯定是十分重要的,如果没有文件的输入输出,纯靠手工输入输出,你可以想象那样的工作量得有多大。

作用范围:

只能操作文本文件。c++中关于文件的输入输出有一定的局限性,那就是只能支持对文本文件的输入输出。不是所有的文件都是文本文件,因此这里一定要注意,否则你输入输出后可能只能看到乱码。

名词解释

文本文件:一个字节存放一个字符编码并且里面所有字节是这样的文件。Windows操作系统中的记事本文件(.txt)就是一种文本格式的文件,简称文本文件。

字符编码:字符是通过编码方式存放的。这里一个字节(8比特)里面存放的都是0或1,这样一个字节就有2的8次方个不同的01组合,每一个这样的组合代表一个字符。当然,具体代表什么由编码规则确定(比如在ASCII表中0x00000041换成十进制是65,表示字母“a”;假设你真的很牛,你也可以让大家都接受用0x00000000代表字母“a”)。
这里啰嗦一句上面的如果不是文本文件为什么会是乱码,我们向文件进行输入输出,不管怎么样,一个字母“a”经过编译后都变成了01这样的机器语言,如果你用的这个文件它不是字符编码,那很有可能它按照两个字节进行解析,那么你写的“ab”对应的16个0或1可能就被解释成不知道什么鬼东西了。

二、写入文件

所用文件:

c++自带库中有一个叫做fstream的头文件,里面包含了我们用来进行文件输入输出所用的类,必须包含这个头文件。

实现步骤:

1.加载头文件
2.实例化ofstream类,创建对象
3.打开要写入的文件
4.对文件进行写入操作
5.关闭文件

代码示例:

#include <iostream>
#include <fstream>//加载c++用于文件读写的头文件
using namespace std;
int main()
{
	ofstream outFile;//实例化ofstream类,创建outFile对象,outFile是对象名字,可以随便取,以后的操作就是对outFile对象进行的
	outFile.open(“filename.txt”);//调用outFile对象中的open函数,作用是将outFile对象与文件进行关联,参数是文件名,如果filename.txt不存在,则自动创建一个叫filename.txt的文件并与其关联。注:open()函数的参数可以是字符串也可是字符数组(如:char name[];outFile.open(name))
	//警告:如果打开一个已存在的文件,这个文件里现存的所有内容都会丢失!!!
	outFile << "hello" << endl;//向文件进行写入,因为cout其实也是ofstream类的一个对象,所以凡是能用于cout的也一样可以用于outFile,两者用法类似
	outFile.close();//使用完文件后应该将其关闭,如果不加此段代码,程序正常终止时会自动将它关闭。但作为程序员,我还是建议你用完就关,避免不必要的错误
	
	return 0;

}

输出

hello//在filename.txt中显示的内容

三、读取文件

所用文件:

c++自带库中有一个叫做fstream的头文件,里面包含了我们用来进行文件输入输出所用的类,必须包含这个头文件。

实现步骤:

1.加载头文件
2.实例化ifstream类,创建对象(读取文件用的是ifstream类,和上面写入不一样)
3.打开要写入的文件
4.判断文件是否存在
5.对文件进行读取操作
6.关闭文件

代码示例:

#include <iostream>
#include <fstream>//加载c++用于文件读写的头文件
using namespace std;
char word[20];
int main()
{
	ifstream inFile;//实例化ifstream类,创建inFile对象,inFile是对象名字,可以随便取,以后的操作就是对inFile对象进行的
	inFile.open("filename.txt");//调用inFile对象中的open函数,作用是将inFile对象与文件进行关联,参数是文件名,注:open()函数的参数可以是字符串也可是字符数组(如:char name[];inFile.open(name))。此处假设打开上面写入的文件
	if(!inFile.is_open())//对文件是否打开进行检测,如果这个文件不存在,会导致后面使用inFile对象时失败。在代码很多的情况下,一定要加上这个,不然可能都找不到错误在哪里,设计程序一定要有这样的思想。检查文件是否被打开至关重要
	{
		exit(EXIT_FAILURE;
	}
	inFile >> word;//读取文件内容,将读取到的内容赋值给word数组,如遇到EOF、最后一次读取的字符的类型不匹配、文件受损等情况会返回fail()
	cout << word << endl;//输出word数组查看是否成功读取文件
	inFile.close();//关闭文件
	
	return 0;
	
}

输出

hallo

名词解释

EOF:End Of File,在操作系统中表示资料源无更多的资料可读取

来自:九七的C++教程(转载请注明出处)

上一篇:Cocos2dx在安卓平台下获取到assets目录下文件的绝对路径


下一篇:xxd使用方法