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>
*/
C++对ASCII文件的操作例子的更多相关文章
- C++学习48 对ASCII文件的读写操作
如果文件的每一个字节中均以ASCII代码形式存放数据,即一个字节存放一个字符,这个文件就是ASCII文件(或称字符文件).程序可以从ASCII文件中读入若干个字符,也可以向它输出一些字符. 对ASCI ...
- 对csv文件的操作
统计行数 wc -l /home/hadoop/workspace/ChemicalFactory/input/device101.csv 输出前两行数据 head -n 2 /home/hadoop ...
- Linux学习之CentOS(四)----Linux文件属性、所有者、群组、其他组及文件权限操作简要总结
Linux文件属性.所有者.群组.其他组及文件权限操作简要总结 首先介绍一个重要的知识点:文件属性控制权限 [root@www ~]# ls -al total 156 drwxr-x--- 4 ro ...
- linux文件测试操作
1.文件测试操作 返回 true 如果... -e 文件存在 -a 文件存在 这个选项的效果与-e 相同.但是它已经被弃用了,并且不鼓励使用 -f file 是一个 regular 文件(不是目录或者 ...
- Python笔记_第一篇_面向过程_第一部分_7.文件的操作(.txt)
在平时,我们不光要对程序内的代码进行输入和输出的操作,还要对程序外的文件进行和语言之间的交换.操作和运算.在基础部分,先讲解对于外部的.txt文件的操作. 第一部分 基本内容讲解 1. 什么是文件 ...
- python对文件的操作
一.python中对文件.文件夹操作时经常用到的os模块和shutil模块常用方法. 1.得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd() 2.返回指定目录下的所有文件 ...
- Adobe AIR对本地文件(XML文件)的操作
引用:http://addiwang.blog.163.com/blog/static/118130772011221114230288/ Air的文件操做主要涉及两个类,FIle和FileStrea ...
- Delphi关于记录文件的操作
http://www.cnblogs.com/railgunman/archive/2010/08/16/1801004.html Delphi关于记录文件的操作 本例子几个变量的说明TFileR ...
- Java文件IO操作应该抛弃File拥抱Paths和Files
Java7中文件IO发生了很大的变化,专门引入了很多新的类: import java.nio.file.DirectoryStream;import java.nio.file.FileSystem; ...
随机推荐
- logz.io一个企业级的ELK日志分析器 内部集成了机器学习识别威胁——核心:利用用户对于特定日志事件的反馈处理动作来学习判断日志威胁 + 类似语音识别的专家系统从各方收集日志威胁信息
转自: 可看到它使用机器学习算法来识别DNS安全问题 http://logz.io/blog/machine-learning-log-analytics/ A Machine Learning Ap ...
- 基于vue的滚动条组件之--element隐藏组件滚动条scrollbar使用
在项目中,总是需要用到滚动条,但windows浏览器默认的滚动条是很丑的,为了页面美观,可以考虑优化滚动条样式. vue Element UI官方文档上并没有放出滚动条相关的示例说明,但是实际上是有 ...
- python3的map(),filter()和reduce()函数总结
这三个都是内置的常用高阶函数(Higher-order function),用法如下: map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把 ...
- Effective C++ 条款10
令operator=返回一个reference to *this 将operator=返回一个reference是为了什么呢?答案很简单,就是为了实现连锁形式. 什么是连锁形式,如int x,y,z: ...
- html 常用代码块
解决外边框不计入div尺寸的代码-moz-box-sizing: border-box;box-sizing: border-box;-webkit-box-sizing: border-box; 手 ...
- 【java规则引擎】之规则引擎解释
转载:http://www.open-open.com/lib/view/open1417528754230.html 现实生活中,规则无处不在.法律.法规和各种制度均是:对于企业级应用来说,在IT技 ...
- bzoj 2744 [HEOI2012]朋友圈——补图!+匈牙利算法
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2744 求最大的团<==>补图(有边的变成没边.没边的变成有边)的最大独立集! A ...
- 导入镜像后,容器内httpd起不来
导入镜像后发现bash进程为1 与之前apache启动的进程冲突了 解决办法:删除apache进程号,通过apachectl重启apache进程
- Ext.window.Window
var win = Ext.create("Ext.window.Window", { id: "myWin", title: "示例窗口" ...
- STM32 -- 故障记录
1.串口2无法发送数据 1)串口2和串口1使用的时钟总线不同: usart1:RCC_APBPeriphClockCmd(RCC_APB2Periph_USART1,ENABLE); usart2:R ...