C++对ASCII文件的操作例子

从键盘读入一行字符,把其中的字母字符依次放在磁盘文件f2.dat中,再把它从磁盘文件读入程序,将其中的小写字母改写成大写字母,再存入磁盘文件f3.dat.

code:

#include<iostream>
#include<fstream>
#include<cstdlib>
using namespace std;
//save_to_file函数从键盘读入一行字符,并将其中的字母存入磁盘文件
void save_to_file()
{
	ofstream outfile("f2.dat");
	//定义输出文件流对象outfile,以输出方式打开磁盘文件f2.dat
	if(!outfile)
	{
		cerr<<"open f2.dat error!"<<endl;
		exit(1); 
	} 
	char c[80];
	cout<<"please input something:"<<endl; 
	cin.getline(c,80);		//从键盘输入一行字符 
	for(int i=0;c[i]!=0;i++)//对字符逐个处理,直到遇到'/0'为止	
	{
		if(c[i]>=65&&c[i]<=90||c[i]>=97&&c[i]<=122)//如果是字母字符 
		{
			outfile.put(c[i]);			//将母字符存入磁盘文件f2.dat 
			cout<<c[i]; 				//同时将字母在显示器进行显示 
		}
	}
	cout<<endl;
	outfile.close();		//关闭f2.dat文件 
} 
//get_from_file函数从磁盘读入字符,将其中的小写字母改为大写字母,然后存回
void get_from_file()
{
	char ch;
	ifstream infile("f2.dat",ios::in);
	//定义输入文件流outfile,以输入方式打开磁盘文件f2.dat 
	if(!infile)
	{
		cerr<<"open f2.dat error!"<<endl;
		exit(1); 
	}
	ofstream outfile("f3.dat");
	//定义输出文件流outfile,以输出方式打开磁盘文件f3.dat 
	if(!outfile)
	{
		cerr<<"open f3.dat error!"<<endl;
		exit(1); 
	}
	while(infile.get(ch))	//当读取成功时,执行下面的符合语句 
	{
		if(ch>=97&&ch<=122)	//ch为小写字母
		{
			ch=ch-32;		//将小写字母转化为大写字母 
		}
		outfile.put(ch); 	//将该大写字母存入磁盘文件f3.dat
		cout<<ch;			//同时在显示器输出 
	}
	cout<<endl;
	infile.close();
	outfile.close(); 
} 
int main()
{
	save_to_file();
	//调用save_to_file(),从键盘输入数据并保存到磁盘 
	get_from_file();
	//调用get_from_file(),从磁盘打开文件,并操作,然后写回磁盘
	return 0; 
}

输出结果:

/*
	please input something:
	SDJKJKkjkjkl232343KJKLJKJKLJsjkdfjkdsjKLJKJKL
	SDJKJKkjkjklKJKLJKJKLJsjkdfjkdsjKLJKJKL
	SDJKJKKJKJKLKJKLJKJKLJSJKDFJKDSJKLJKJKL
*/

第一行为我输入的数据,第二行是f2.dat中的数据,第三行是f3.dat中的数据。


我们还可以通过type命令,查看f2.dat和f3.dat中的数据。

/*
	C:\Users\hp>cd /d e:\test
	
	e:\test>dir
	 驱动器 E 中的卷是 Work
	 卷的序列号是 0FBA-069C
	
	 e:\test 的目录
	
	2013/12/11  22:00    <DIR>          .
	2013/12/11  22:00    <DIR>          ..
	2013/12/11  22:00                39 f2.dat
	2013/12/11  22:00                39 f3.dat
	2013/12/11  21:58             1,661 one.cpp
	2013/12/11  22:00         6,560,425 one.exe
	               4 个文件      6,562,164 字节
	               2 个目录 207,104,806,912 可用字节
	
	e:\test>type f2.dat
	SDJKJKkjkjklKJKLJKJKLJsjkdfjkdsjKLJKJKL
	e:\test>
	e:\test>
	e:\test>type f3.dat
	SDJKJKKJKJKLKJKLJKJKLJSJKDFJKDSJKLJKJKL
	e:\test>
	e:\test> 
*/


posted @ 2013-12-11 22:10  千手宇智波  阅读(859)  评论(0编辑  收藏  举报