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 ...
随机推荐
- 扩增子分析QIIME2-2数据导入Importing data
# 激活工作环境 source activate qiime2-2017.8 # 建立工作目录 mkdir -p qiime2-importing-tutorial cd qiime2-importi ...
- Pycharm 专业版安装
1.Pycharm官网,网址:http://www.jetbrains.com/pycharm/download/#section=windows,下载PyCharm安装包,根据自己电脑的操作系统进行 ...
- 01网页<head></head>常用标记及属性
网页<head></head>常用标记及属性 <!DOCTYPE html> <html> <head> <!--网页标题--> ...
- bazel和TensorFlow安装
bazel安装:https://docs.bazel.build/versions/master/install-ubuntu.html#install-with-installer-ubuntu 安 ...
- 【Hadoop】三、HDFS命令行接口
通过前面对HDFS基本概念.高可用性.数据读写流程的介绍,我们对HDFS已经有了大致的了解.这里我们还需要明确一点:Hadoop作为一个完整的分布式系统,它有一个抽象的文件系统的概念,而我们介绍的 ...
- BigDecimal运算
BigDecimal由任意精度整数未缩放值和32位整数级别组成 . 如果为零或正数,则刻度是小数点右侧的位数. 如果是负数,则数字的非标定值乘以10,以达到等级的否定的幂. 因此,BigDecimal ...
- xmpp使用经验
IM 标准协议有XMPP\IMPP\PRIM\SIP(SIMPLE)等,其中XMPP基于XML的协议,具备了很好的扩展性(依靠XML的域名空间)并且可以建立在TLS上使用SASL认证. 1.文件比如图 ...
- 关于SPFA的双端队列优化
7.11 Update 我做题的时候发现这样写会RE 因为在使用双端队列优化SPFA的时候 在将一个点加入队列的时候,如果队列已经空了 那么一旦出现dis[Q.front()]就会RE 可以这样修改 ...
- 【代码段】Android Studio使用DatePicker选择日期
布局文件中放一个TextView就好了 Java文件如下: public class TestDatePickerActivity extends AppCompatActivity { privat ...
- spring 学习(二)
public interface BeanPostProcessor { @Nullable default Object postProcessBeforeInitialization(Object ...