C++文件读取

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

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

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


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

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

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

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

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


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

#include <iostream>
#include <fstream>
#include <string>

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(每次读入一个单词):从特定文件逐个读入单词并统计给定单词出现的次数。

<span style="font-size:18px;">#include <iostream>
#include <fstream>
#include <string>

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;
}</span>

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

<span style="font-size:18px;">#include <iostream>
#include <fstream>
#include <string>

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 <<endl;
	}
	return 0;
}</span>
很多时候都希望输入回车来结束输入,C语言可以用:

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

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

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

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

cin.unget()




发布了65 篇原创文章 · 获赞 39 · 访问量 25万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章