C++文件读取

在C语言中打开和处理文件很复杂,并且一般用不上,以至于我看C++的时候直接忽略掉这部分。然而C++语言中的iostream库提供了一种简单的方法来处理文件。

打开文件进行读写操作,必须包含,虽然会自动包含,但如果要使用cin、cout,最好还是现实包含

为了读而打开文件,要创建一个ifstream对象,它的用法与cin相同;为了写而打开文件,要创建ofstream对象,它的用法与cout相同。


库中有一个非常有用的函数getline().

函数原型:getline(istream &, string &, char del);

函数参数:第一个参数打开的流,第二个参数保存读入的内容,第三个参数是字段分隔符,默认是'\n'。

函数功能:从输入流读入一行内容到string s。

函数返回false条件:读入了文件结束标志(没有读入字符)


eg1(每次读入一行):逐行读入特定文件(测试为txt文件)并输出。

#include 
#include 
#include 

using namespace std;

int main() {
	ifstream in("C://Users//Administrator//Desktop//a.txt");
	string str;
	while(getline(in,str)){
		cout << str << endl;
	}
	return 0;
}

eg2(每次读入一个单词):从特定文件逐个读入单词并统计给定单词出现的次数。

#include 
#include 
#include 

using namespace std;

int main() {
	ifstream in("C://Users//Administrator//Desktop//a.txt");
	string str;
	string findword = "the";
	int num = 0;
	while(in >>str){
		if(str == findword)
			++num;
	}
	cout << num << endl;
	return 0;
}

eg3:一次显示文件的一行,然后等待用户按回车键以后显示下一行。

#include 
#include 
#include 

using namespace std;

int main() {
	ifstream in("C://Users//Administrator//Desktop//a.txt");
	string str;
	string word;
	while(getline(in,str)&&(cin.get() =='\n')){
		cout << str <
很多时候都希望输入回车来结束输入,C语言可以用:

if(getchar() == '\n')

C++语言可以用cin.get()来获取流中的字符,然后判断是否为回车符:

while(cin.get() ==‘\n’)

如果不是将字符放入流中:

cin.unget()




你可能感兴趣的:(C/C++,C++成长之路,C++编程思想)