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

来源:互联网 发布:华为悦盒怎么连接网络 编辑:程序博客网 时间:2024/04/28 22:40

从键盘读入一行字符,把其中的字母字符依次放在磁盘文件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.datif(!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.datcout<<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:SDJKJKkjkjkl232343KJKLJKJKLJsjkdfjkdsjKLJKJKLSDJKJKkjkjklKJKLJKJKLJsjkdfjkdsjKLJKJKLSDJKJKKJKJKLKJKLJKJKLJSJKDFJKDSJKLJKJKL*/

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


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

/*C:\Users\hp>cd /d e:\teste:\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.dat2013/12/11  22:00                39 f3.dat2013/12/11  21:58             1,661 one.cpp2013/12/11  22:00         6,560,425 one.exe               4 个文件      6,562,164 字节               2 个目录 207,104,806,912 可用字节e:\test>type f2.datSDJKJKkjkjklKJKLJKJKLJsjkdfjkdsjKLJKJKLe:\test>e:\test>e:\test>type f3.datSDJKJKKJKJKLKJKLJKJKLJSJKDFJKDSJKLJKJKLe:\test>e:\test> */


1 0