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 ...
随机推荐
- string 字符串--------redis
APPEND 语法:APPEND KEY VALUE 如果key已经存在并且是一个字符串,append 命令将value追加到key原来的值的末尾. 如果key不存在,append就简单地将给定key ...
- Pycharm中通过扩展工具添加QTDesigner
1.在电脑中找到Designer.exe的安装目录: 2.在pycharm中打开file->Settings->Tools->External Tools进行配置: 配置如下图所示: ...
- 全局唯一的支付和订单id生成算法
数据库存储的是两个Long类型的复合主键.显示到页面的是一个27位的数字单号 package com.yunyihenkey.common.idworker; /** * * @desc * @aut ...
- 【转载】文件上传命令rz和下载命令sz的安装
一.xshell工具简介 Xshell 是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议.其可以在Windows界面下用来访 ...
- CentOS下安装微软雅黑字体
CentOS下安装微软雅黑字体 微软雅黑下载地址:http://download.csdn.net/detail/u012547633/9796219 1.先从你本机 C:\Windows\Fon ...
- vsCode scss安装
点击在settings.json中编辑写入代码: { /** Easy Sass 插件 **/ "easysass.formats": [ { "format" ...
- 关于Extjs的窗口拖拽,改变大小,背景淡化问题
大部分Extjs的Windows问题:在Extjs4代码中,只要加几句话: frame:true, //这个窗口的边边是圆的 border : false , //窗口没有边框 draggable: ...
- 诊断:ORA-01919: role ‘PLUSTRACE’ does not exist
如下错误 SQL> grant plustrace to scott; grant plustrace to scott * ERROR at line 1: ORA-01919: role ' ...
- 题解 洛谷P1501/BZOJ2631【[国家集训队]Tree II】
Link-Cut-Tree 的懒标记下传正确食用方法. 我们来逐步分析每一个操作. 1:+ u v c:将u到v的路径上的点的权值都加上自然数c; 解决方法: 很显然,我们可以 split(u,v) ...
- eclipse自动换行
Eclipse是一款非常优秀的IDE,但是不能自动换行,需要安装一个插件完成这个功能. 安装办法有两种: 1.在线安装. 选择help-->install new software,点击Add, ...