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 0;
}

这样,从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<<"1234";              //写入数据
    }
    out.close();                  //关闭
    return 0;
}

哎,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<<"5";
    }
    out.close();
    return 0;
}

其实当 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 0;
}

也可以这样,按行读取成字符串,分隔符是换行

#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 0;
}

关于文件写入,读出其实还有很多内容,可以参考 《C++ Primer Plus  第6版  中文版》

关于cin,cout其实有

这里用一个很妙的技巧。

如何把整数装换成字符串?可以利用ostringstream啊!

ostringstream os;
os<<123;
string s="0"+os.str();
cout<<s<<endl;

输出0123

时间: 2025-01-16 13:31:25

c++中读写文件操作的相关文章

在linux内核中读写文件

http://blog.csdn.net/tommy_wxie/article/details/8194276 1. 序曲 在用户态,读写文件可以通过read和write这两个系统调用来完成(C库函数实际上是对系统调用的封装). 但是,在内核态没有这样的系统调用,我们又该如何读写文件呢? 阅读Linux内核源码,可以知道陷入内核执行的是实际执行的是sys_read和sys_write这两个函数,但是这两个函数没有使用EXPORT_SYMBOL导出,也就是说其他模块不能使用. 在fs/open.c

第三十二课、Qt中的文件操作

一.Qt中的IO操作 1.Qt中IO操作的处理方式 (1).Qt通过统一的接口简化了文件与外部设备的操作方式 (2).Qt中的文件被看做是一种特殊的外部设备 (3).Qt中的文件操作与外部设备操作相同 2.IO操作中的关键函数接口 注意:IO操作的本质:连续存储空间的数据读写 3.Qt中IO设备类型 (1).顺序存储设备:只能从头开始顺序读写数据,不能指定数据的读写位置(串口) (2).随机存储设备:可以定位到任意位置进行数据读写(seek function函数)(文件) 4.Qt中IO设备 的

第32课 Qt中的文件操作

1. Qt的中IO操作 (1)Qt中IO操作的处理方式 ①Qt通过统一的接口简化了文件和外部设备的操作方式 ②Qt中的文件被看作一种特殊的外部设备 ③Qt中的文件操作与外部设备的操作相同 (2)IO操作中的关键函数接口——IO操作的本质:连续存储空间的数据读写 ①打开设备:bool open(OpenMode mode); ②读取数据:QByteArray read(qint64 maxSize); ③写入数据:qint64 write(const QByteArray& byteArray);

【转】在linux内核中读写文件 -- 不错

原文网址:http://blog.csdn.net/tommy_wxie/article/details/8194276 1. 序曲 在用户态,读写文件可以通过read和write这两个系统调用来完成(C库函数实际上是对系统调用的封装). 但是,在内核态没有这样的系统调用,我们又该如何读写文件呢? 阅读linux内核源码,可以知道陷入内核执行的是实际执行的是sys_read和sys_write这两个函数,但是这两个函数没有使用EXPORT_SYMBOL导出,也就是说其他模块不能使用. 在fs/o

Android 存储学习之在外部存储中读写文件

上节学习了如何在手机内部存储中读写文件,本节学习如何在手机的外部存储中读写文件.那就是如何在Sdcard中读写文件. 那我们还是用以前登录界面的例子举例说明,(登录界面请看上节Android 存储学习之在内部存储中读写文件) 先我们显示写的代码: 当点击确定并且自动登录的钩是选中的,则就会在sdcard文件夹写创建一个info.txt文件 public void login(View v) { String name = ed_nam.getText().toString(); String p

PHP中读写文件实现代码

PHP中读写文件实现代码 PHP中读写文件实现代码,整理的还不错,需要的朋友可以参考下. 在PHP中读写文件,可以用到一下内置函数: 1.fopen(创建文件和打开文件) 语法: 复制代码 代码如下: fopen(filename,mode) filename,规定要打开的文件.mode,打开文件的模式,可能的值见下表. mode 说明 "r" 只读方式打开,将文件指针指向文件开头. "r+" 读写方式打开,将文件指针指向文件开头. "w" 写入

让你提前认识软件开发(22):shell脚本中的文件操作

第1部分 重新认识C语言 shell脚本中的文件操作 [文章摘要] 编写shell脚本时,经常会涉及到对文件的操作,比如从文件中读取一行数据.向文件追加一行数据等.完成文件读写操作的方法有很多,了解各种命令下文件操作的执行情况,有助于开发人员在不同使用场景下选择合适的命令. 本文以实际的shell脚本为例,介绍了对文件进行操作的不同方法,为相关开发工作提供了参考. [关键词] shell  文件操作  读写  效率 一.概述 在某些软件项目的需求文档中,要求程序一次性读或写的数据规模较大,可达1

Qt--软件开发流程简介、Qt中的文件操作

一.软件开发流程 Q.什么是软件开发流程?1.通过一系列步骤保证软件的顺利完成2.软件产品在生命期内的管理方法学软件开发流程的本质1.开发流程与具体技术无关2.开发流程是开发团队必须遵守的规则常见的开发流程--即兴.瀑布.增量.螺旋.敏捷等A.即兴模型1.与最终用户交流后立即开始进行开发2.没有需求分析和需求发掘的过程3.没有整体设计以及规划的过程4.没有相关软件文档,维护性差B.瀑布模型1.通过自上而下的步骤进行软件开发2.每个开发步骤都是不可逆的C.增量模型1.将系统能分解为互不重叠的子功能

Android简易实战教程--第十五话《在外部存储中读写文件》

第七话里面介绍了在内部存储读写文件 点击打开链接. 这样有一个比较打的问题,假设系统内存不够用,杀本应用无法执行,或者本应用被用户卸载重新安装后.以前保存的用户名和密码都不会得到回显.所以,有必要注意这个问题 因此把文件保存到sd卡中.即今天所写的  第十五话<在外部存储中读写文件> 首先布局文件和第七话一样: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns: