本文转载自xmh_free

自己浏览了上方的博客,主要整理了一下关于C++对文件的输入输出方法,如果想看C语言的输入输出方法,可浏览上述链接的博客

C++读写函数

在C++中,对文件的操作是通过stream的子类fstream来实现的。要用这种方式操作文件,就必须加入头文件fstream.h,也可以写成fstream。

文本文件

读操作

函数open的原型是*void open(const char filename,int mode,int access)。参数filename:要打开的文件名;参数mode:要打开文件的方式;access:打开文件的属性。打开文件的方式在类ios(是所有流式I/O类的基类)中定义,常用的值如下(可以用“|”或者“+”把以下属性连接起来):

  • ios::in 以只读方式打开文件
  • ios::out 以只写方式打开文件
  • ios::app 以追加(写)方式打开文件
  • ....(上述博客中提到的其余三种在我的DEVC++上显示没有,所以需要其他功能的自行百度)

写操作

在C++语法中,文本文件输出函数的重点也是对输出格式的控制。这里是通过调用标准库中相应的输出格式设置函数来实现的,调用时需要包含头文件iomanip.h。比较常用的格式控制函数有:字符宽度设置函数setw(int);默认填充字符设置函数setfill(char);输出精度设置函数setprecision(int)。可自行结合下列进行尝试。

代码测试

这个代码要解决的问题是:

给定一个整数数组ar, 其中只有一个数出现了奇数次数,其他的数都是偶数词,打印这个数。本文中使用的是常规方法,更巧妙的求解是采用异或进行运算,留给读者自己尝试。

运行之前的text.txt文件内容为

/*C++读写文件测试*/
#include<iostream>
#include<cstring>
#include<fstream>//读写头文件
#include<algorithm>//算法头文件
using namespace std;
int main(){
int arr[],n;
string filepath="text.txt";
ifstream pin;//ifstream,ofstream都是类名,定义的pin,put就是一个类的变量,通过该变量可以替代cin,cout进行输入,输出
ofstream put;
put.open(filepath.c_str(), ios::app);
pin.open("text.txt",ios::in);
pin>>n;//从文件中读入n
for(int i=;i<n;i++) pin>>arr[i];//从文件中读入各个数
// int n=sizeof(arr)/sizeof(arr[0]);//注意strlen是统计字符数组的长度,而不能统计char类型,
// cout<<n;
sort(arr,arr+n);//利用algorithm中的库函数
for(int i=;i<n;i=i+){
if(arr[i]!=arr[i+]){
put<<endl;
put<<setw(6)<<setfill('*')<<arr[i]<<endl;//将arr[i]写入filepath下的文件中
break;
}
}
    double k = 192.9773;
    put<<setprecision(6)<<k<<endl;
return ;
}

运行之后text.txt中的结果如下:

C++对文本文件的读取和输出的更多相关文章

  1. Python中读取文件输出时在头部输出\ufeff

    问题出现: 在我测试python中的文本文件的读取与写入时,用到了字典对象来存储读出的数据. std_data = dict() with open(sys.argv[1], encoding='UT ...

  2. java算法面试题:从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名和重复的次数,并按重复次数排序 ;读取docx 读取doc 使用poi 相关jar包提集提供下载

    从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名和重复的次数,并按重复次数排序 1,张三,28 2,李四,35 3,张三,28 4,王五,35 5,张三,28 6,李四,35 7,赵六,28 ...

  3. 新手学习FFmpeg - 调用API完成视频的读取和输出

    在写了几个avfilter之后,原本以为对ffmpeg应该算是入门了. 结果今天想对一个视频文件进行转码操作,才发现基本的视频读取,输出都搞不定. 痛定思痛,仔细研究了一下ffmpeg提供的examp ...

  4. 使用JSCH执行命令并读取终端输出的一些使用心得

    使用Jsch执行命令,并读取终端输出 jsch http://www.jcraft.com/jsch/ Jsch是java实现的一个SSH客户端.开发JSCH的公司是 jcraft: JCraft成立 ...

  5. J2SE 8的输入输出--读取/写入文本文件和读取/写入二进制数据

    读取/写入文本文件 // 1. 文本输入 // (1) 短小文本直接转入字符串 String string = new String(Files.readAllBytes(Paths.get(&quo ...

  6. c++ 读取、输出txt文件

    下面这段话转自:https://blog.csdn.net/lightlater/article/details/6326338 关于文本文件的文件头 第一 ANSI文件的文件头为空,不需要处理: 第 ...

  7. C++调用GDAL库读取并输出tif文件,并计算斑块面积输出景观指数:CSD

    部分源码选自GDAL库的官方网址:www.gdal.org,其余的代码为笔者自己编写. // readfile.cpp : 定义控制台应用程序的入口点. // /* part of the codes ...

  8. ELK-logstash案例实战之读取日志输出到elasticsearch

    简介:从日志文件中读取日志,输出到elasticsearch集群中 $ cd /home/es/logstash-/config $ vim test3_es.conf $ cd /home/es/l ...

  9. UTF-8格式的文本文件程序读取异常

    最近在windows服务器上直接创建并手打输入配置参数,比如设置概率0.6,然后用java程序打开读取该参数,在本地linux环境下测试完全正常,但是一放到服务器上,就报NotNumber错误,查看了 ...

随机推荐

  1. .NET Framework 系统版本支持表

    .tg {border-collapse:collapse;border-spacing:0;border-color:#aabcfe;} .tg td{font-family:Arial, sans ...

  2. luogu P2508 [HAOI2008]圆上的整点

    传送门 推荐去bzoj看个视频了解一下 不要妄想视频直接告诉你题解 但是视频告诉了你后面要用的东西 首先我们要求的是\(x^2+y^2=n^2(x,y\in Z)\)的\((x,y)\)对数,可以转化 ...

  3. mysql 原理 ~ double write

    一 简介:今天来聊聊double write 二 细节 1 Double write 是InnoDB在 tablespace(ibdata1)上的128个页(2个区)是2MB: 2 何谓页断裂 所谓页 ...

  4. MySQL内连接、外连接、交叉连接

    外连接: 左连接:left join 或 left outer join 以左边的表为基准,如果左表有数据,而右表没有数据,左表的数据正常显示,右表数据显示为空. 创建user表,用于记录用户 use ...

  5. 1.内网ntp服务器的搭建

    1.拓扑图

  6. Linux之定时器与时间管理 【转】

    转自:http://blog.chinaunix.net/uid-23228758-id-154820.html 定时器与时间管理: 次,为一秒.一般的情况下编程者不要改变这个值,因为内核编很多代码都 ...

  7. redhat换用centos源

    解除原有源rpm -aq|grep yum|xargs rpm -e --nodepsrpm -aq|grep python-iniparse|xargs rpm -e --nodeps rpm -q ...

  8. Oracle数据库修改LISTENER的监听端口

    背景 这又是个不作不会死的事情,自己不懂,硬搞,端口换了,后来竟然捣鼓好了.尽量少搞这些事情. 注意点 http://wallimn.iteye.com/blog/1163614 修改配置文件后,需修 ...

  9. centos7使用haproxy1.7.5实现反向代理负载均衡实战

    使用haproxy实现反向代理负载均衡实战环境准备:两台虚拟机 # yum install -y gcc glibc gcc-c++ make screen tree lrzsz node1源码编译安 ...

  10. 为cobbler自动化安装系统工具添加epel源

    关于cobbler的安装及部署,参考:CentOS 6.5自动化运维之基于cobbler服务的自动化安装操作系统详解http://blog.csdn.net/reblue520/article/det ...