c++中读写文件操作
读写文件这个,不常用,每次用的时候都会百度一下,每次写法还都不一样,所有总是记混。今天利用点时间总结下之前工程中用过的。以后就安照这种方法写了。
搞acmicpc的时候喜欢用freopen(),这个是c语言里面的用法如下:
#include<stdio.h>
int main(){
freopen("in.txt","r",stdin);
freopen("out.txt","w",stdout);
int n,m;
while(cin>>n>>m){
cout<<n+m<<endl;
}
return ;
}
这样,从in.txt中读进来多组n,m 然后计算n+m再写入out.txt中,每次写入都会把之前out.txt中的数据清空。
因为,现在实习总写c++.下面说一下c++文件的读取写入操作。
文件读取写入的类库是fstream,更具体的说读取时 ifstream 写入是 ofstream
例子:
/* ***********************************************
Author :guanjun
Created Time :2017/3/18 13:32:52
File Name :33.cpp
************************************************ */
#include <bits/stdc++.h>
//#include <fstream>
using namespace std; int main(){
ofstream out("d://out2.txt");//初始化一个out对象
if(!out){ //是否正常打开
cout<<"error";
}
else{
out<<""; //写入数据
}
out.close(); //关闭
return ;
}
哎,c++11用一个<bits/stdc++.h>就可以把所有头文件都包括进来了。以上是在windows下的。linux路径格式会有区别。
有些时候,我们并不希望第二次写入的时候,之前的数据被清空。这时我们可以这么写。
例子:
/* ***********************************************
Author :guanjun
Created Time :2017/3/18 13:32:52
File Name :33.cpp
************************************************ */
#include <bits/stdc++.h>
//#include <fstream>
using namespace std; int main(){
ofstream out("d://out2.txt",ios::out|ios::app);
if(!out){
cout<<"error";
}
else{
out<<"";
}
out.close();
return ;
}
其实当 ofstream创建对象 out的时候默认ios::out,如果想用追加的方式打开的话,可以在后面加上|ios::app,像 ios::app这样的参数有很多,比如ios::binary等。 | 是或的意思。
文件读入的例子:按字符串读取,空格和换行作为分割,读到文件末尾
#include <bits/stdc++.h>
//#include <fstream>
using namespace std; int main(){
ifstream in("d://out2.txt");
if(!in){
cout<<"error";
}
else{
string s;//如果是以确定类型,这块也可以改成 int,float等
while(in>>s){
cout<<s<<endl;
}
}
in.close();
return ;
}
也可以这样,按行读取成字符串,分隔符是换行
#include <bits/stdc++.h>
//#include <fstream>
using namespace std; int main(){
ifstream in("d://out2.txt");
if(!in){
cout<<"error";
}
else{
string s;
while(getline(in,s)){
cout<<s<<endl;
}
}
in.close();
return ;
}
关于文件写入,读出其实还有很多内容,可以参考 《C++ Primer Plus 第6版 中文版》
关于cin,cout其实有
这里用一个很妙的技巧。
如何把整数装换成字符串?可以利用ostringstream啊!
ostringstream os;
os<<123;
string s="0"+os.str();
cout<<s<<endl;
输出0123
c++中读写文件操作的更多相关文章
- 第32课 Qt中的文件操作
1. Qt的中IO操作 (1)Qt中IO操作的处理方式 ①Qt通过统一的接口简化了文件和外部设备的操作方式 ②Qt中的文件被看作一种特殊的外部设备 ③Qt中的文件操作与外部设备的操作相同 (2)IO操 ...
- 【转】 Linux内核中读写文件数据的方法--不错
原文网址:http://blog.csdn.net/tommy_wxie/article/details/8193954 Linux内核中读写文件数据的方法 有时候需要在Linuxkernel--大 ...
- 【转】在linux内核中读写文件 -- 不错
原文网址:http://blog.csdn.net/tommy_wxie/article/details/8194276 1. 序曲 在用户态,读写文件可以通过read和write这两个系统调用来完成 ...
- 重新想象 Windows 8 Store Apps (24) - 文件系统: Application Data 中的文件操作, Package 中的文件操作, 可移动存储中的文件操作
原文:重新想象 Windows 8 Store Apps (24) - 文件系统: Application Data 中的文件操作, Package 中的文件操作, 可移动存储中的文件操作 [源码下载 ...
- 背水一战 Windows 10 (91) - 文件系统: Application Data 中的文件操作, Application Data 中的“设置”操作, 通过 uri 引用 Application Data 中的媒体
[源码下载] 背水一战 Windows 10 (91) - 文件系统: Application Data 中的文件操作, Application Data 中的“设置”操作, 通过 uri 引用 Ap ...
- Java中的文件操作(一)RandomAccessFile
今天,学到的是java中的文件操作. Java.IO.File Java中操作文件用到RandomAccessFile类,既可以读取文件内容,也可以向文件输出数据,但不同与普通输入/输出流的是Rand ...
- golang中的文件操作
一.文件的基本介绍 文件是数据源(保存数据的地方)的一种,比如经常使用的word文档,txt文件,excel文件都是文件.文件最主要的作用就是保存数据,它既可以保存一张图片,也可以保持视频,声音等等. ...
- PHP中读写文件
在PHP中读写文件,可以用到一下内置函数: 1.fopen(创建文件和打开文件) 语法: 复制代码代码如下:fopen(filename,mode) filename,规定要打开的文件.mode,打开 ...
- Android 怎样在linux kernel 中读写文件
前言 欢迎大家我分享和推荐好用的代码段~~ 声明 欢迎转载,但请保留文章原始出处: CSDN:http://www.csdn.net ...
随机推荐
- Android Measure 体系简单总结
Android对View的测量是半协商半强制半模糊半具体的. 测量过程中的两套尺寸体系: [半强制] ParentView**约束ChildView: **MeasureSpec(通过measure ...
- Exceptions & Errors - 异常与错误
来源于 Ry’s Objective-C Tutorial - RyPress 一个学习Objective-C基础知识的网站. 个人觉得很棒,所以决定抽时间把章节翻译一下. 本人的英语水平有限,有让大 ...
- Vue指令3:v-for
列表渲染 我们用 v-for 指令根据一组数组的选项列表进行渲染.v-for 指令需要使用item in items 形式的特殊语法,items 是源数据数组并且 item 是数组元素迭代的别名. & ...
- spring思想分析
摘要: EveryBody in the world should learn how to program a computer...because it teaches you how to th ...
- 使用lombok注解@Getter @Setter方法代码编译成功,但是没有生成get,set方法
现象描述: 在对应类对象中,添加lombok的@Getter或@Setter注解,编译没有问题,但是在使用类对象时,没有出现对应的get或set方法. 配置且编译ok,但是没有对应的get或set方法 ...
- 【Redis】三、Redis安装及简单示例
(四)Redis安装及使用 Redis的安装比较简单,仍然和大多数的Apache开源软件一样,只需要下载,解压,配置环境变量即可.具体安装过程参考:菜鸟教程Redis安装. 安装完成后,通过r ...
- TWaver 3D作品Viewer查看器
为了让开发者更方便的对各类3D模型.设备.物体进行浏览和查看,我们直接封装了mono.Viewer组件.它可以直接根据给定的数据源(json.obj.url等)进行数据加载和浏览展示.对于一般的3D设 ...
- js实现汉字中文排序的方法 例如:省市列表的排序
localeCompare() 1.数组内的元素是中文字符串的简单排序 var arr = ['南京', '北京', '上海', '杭州', '深圳']; function sortChinese ( ...
- eclipse 中导入 MyBatis 的源码
(1)选中 Mybatis-3.2.2.jar ,右击,在弹出的快捷菜单中选择 “Properties” 选项,进入属性界面. (2)进入属性界面后,选中 “Java Source Attachme ...
- SocketServer 网络服务框架
SocketServer简化了网络服务器的编写.它有4个类:TCPServer,UDPServer,UnixStreamServer,UnixDatagramServer.这4个类是同步进行处理的,另 ...