注: "<<", 插入器,向流输入数据
      ">>", 析取器,从流输出数据,
 
ifstream和ofstream主要包含在头文件<fstream>中. fstream可对打开的文件进行读写操作
ifstream <===> 硬盘向内存写入文件
ofstream <===> 内存向硬盘写入文件
ofstream out("out.txt");

if(out.is_open())    //is_open()返回真(1),代表打开成功

{

    out<<"HELLO WORLD!"<<endl;

    out.close();

}

在文件out.txt中写入了HELLO WORLD!

ifstream in("out.txt");

cha buffer[200];

if(in.is_open())

{

    while(!in.eof())

    {

        in.getline(buffer,100)

        cout<<buffer<<endl;

        out.close();

    }

}
打开文件:
 

ofstream out("/root/1.txt"); 
或者 
ofstream out;
out.open("/root/1.txt");
 
写入:
out << "hello, world!!!" << endl;
 
 
关闭文件:
 

out.clear(); //为了代码具有移植性和复用性, 这句最好带上,清除标志位.有些系统若不清理可能会出现问题.
out.close();
 
//对于上面两语句的先后问题.取决于文件打开是否成功,若文件打开失败.先clear后再直接close的话状态位还是会出现问题.. 一般逻辑是先close,不管close成功与否,然后clear清楚标志位
 
文件打开状态的判断(状态标识符的验证):
.bad() <===> 读写文件出错, 比如以r打开写入,或者磁盘空间不足, 返回true
.fail() <===> 同上, 且数据格式读取错误也返回true
.eof() <===> 读文件到文件结尾,返回true
.good() <===> 最通用,如果上面任何一个返回true,则返回false.
如果清除上面标志位,则调用.clear()函数
 
实例完整代码:
 

#include <iostream>
#include <string>
#include <sstream>
#include <fstream> using namespace std;
#define TO_NUMBER(s, n) (istringstream(s) >> n) //字符串转换为数值
#define TO_STRING(n) (((ostringstream&)(ostringstream() << n)).str()) //数值转换为字符串 int main(int argc, char **argv)
{
string lines;
ifstream infile(argv[1]);
ofstream outfile(argv[2]); if(!infile.is_open())
{
cout<<argv[1]<<"文件打开失败"<<endl;
return 0;
} if(!outfile.is_open())
{
cout<<argv[2]<<"文件打开失败"<<endl;
return 0;
} while(getline(infile,lines))
{
if(infile.eof())
{
cout<<"文件读取失败"<<endl;
break;
} istringstream strline(lines);
string tmp_string;
int i = 1; strline>>tmp_string;
string linename = tmp_string;
while(strline>>tmp_string)
{
outfile<<"# "<<i<<" "<<linename<<" "<<i<<" "<<tmp_string<<endl;;
i++;
}
cout<<"total column is: "<<i<<endl;
} infile.clear(); //为了代码具有移植性和复用性, 这句最好带上,清除标志位.有些系统若不清理可能会出现问题.
infile.close();
outfile.clear(); //为了代码具有移植性和复用性, 这句最好带上,清除标志位.有些系统若不清理可能会出现问题.
outfile.close(); return 0;
}
 
 
 
 

C++ 标准文件的写入读出(ifstream,ofstream)的更多相关文章

  1. C++文件写入,读出函数ofstream,ifstream的使用方法

    ofstream是从内存到硬盘,ifstream是从硬盘到内存,其实所谓的流缓冲就是内存空间. 1.插入器(<<)  向流输出数据.比如说系统有一个默认的标准输出流(cout),一般情况下 ...

  2. C++ ifstream,ofstream读写二进制文件

    为什要吧数据存为二进制 这个嘛,是我个人习惯,一般,我们会把日志文件存为文本文件.数据文件存成二进制文件. 其实,我们接触的文件,比如图像.视频都是以二进制的形式存储的,要想查看这类数据,必须知道数据 ...

  3. C++ ifstream ofstream

    原文出自[比特网],转载请保留原文链接:http://soft.chinabyte.com/database/460/11433960.sh [导读] ofstream是从内存到硬盘,ifstream ...

  4. C++ 输入输出文件流(ifstream&ofstream)

    ofstream是从内存到硬盘,ifstream是从硬盘到内存,其实所谓的流缓冲就是内存空间; 在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O, ...

  5. c++ ifstream ofstream 文件流

    #include <fstream>ofstream //文件写操作 内存写入存储设备 ifstream //文件读操作,存储设备读区到内存中fstream //读写操作,对打开的文件可进 ...

  6. 从零开始学C++之IO流类库(二):文件流(fstream, ifstream, ofstream)的打开关闭、流状态

    一.文件流 ofstream,由ostream派生而来,用于写文件 ifstream,由istream派生而来, 用于读文件 fstream,由iostream派生而来,用于读写文件 二.打开文件 说 ...

  7. 文件流(fstream, ifstream, ofstream)的打开关闭、流状态

    一.文件流 ofstream,由ostream派生而来,用于写文件 ifstream,由istream派生而来, 用于读文件 fstream,由iostream派生而来,用于读写文件 二.打开文件 说 ...

  8. C++ ifstream ofstream 注意事项

    很久没写C++,已经完全不会写了... 在使用ifstream读取一个二进制文件时,发现读取的内容和源文件不相同,导致数据解析失败,于是尝试把用ifstream读取的内容用ofstream写入另一个文 ...

  9. C# 文件与二进制互转数据库写入读出

    //这个方法是浏览文件对象 private void button1_Click(object sender, EventArgs e) { //用户打开文件浏览 using (OpenFileDia ...

随机推荐

  1. 7 Scatter-loading Features

    7.1 About scatter-loading The scatter-loading mechanism enables you to specify the memory map of an ...

  2. Codeforces 1159A A pile of stones

    题目链接:http://codeforces.com/problemset/problem/1159/A 题意:初始石头堆石子数未知,求进行 n 次加减操作后,石头堆石子数最小的可能是多少. 思路:正 ...

  3. 读取.properties配置文件(转载)

    读取.properties 文件 配置文件的一种,内容以键值对的形式存在,且每个键值对独占一行.#号作为行注释的起始标志,中文注释会自动进行unicode编码.示例: # ip and port of ...

  4. Elasticsearch 搭建

    最近需要用到Elasticsearch.下面简单介绍下Elasticsearch的搭建过程: ElasticSearch 使用java编写, 所以需要安装 Java 6以上 环境来运行. 并且确保设置 ...

  5. 【笔记篇】单调队列优化dp学习笔记&&luogu2569_bzoj1855股票交♂易

    DP颂 DP之神 圣洁美丽 算法光芒照大地 我们怀着 崇高敬意 跪倒在DP神殿里 你的复杂 能让蒟蒻 试图入门却放弃 在你光辉 照耀下面 AC真心不容易 dp大概是最经久不衰 亘古不化的算法了吧. 而 ...

  6. UOJ67 新年的毒瘤【Tarjan,割点】

    Online Judge:#uoj 67 Label:Tarjan,割点,细节 题目描述 辞旧迎新之际,喜羊羊正在打理羊村的绿化带,然后他发现了一棵长着毒瘤的树.这个长着毒瘤的树可以用\(n\)个结点 ...

  7. 既然 start() 方法会调用 run() 方法,为什么我们调用 start() 方法,而不直接调用 run() 方法?

    当你调用 start() 方法时,它会新建一个线程然后执行 run() 方法中的代码.如果直接调用 run() 方法,并不会创建新线程,方法中的代码会在当前调用者的线程中执行

  8. Java 虚拟机 - 2.3 HotSpot虚拟机对象

    对象的创建 Step1 类加载检查 当发现一条new指令时,检查: 该指令的参数是否能在常量池中定位到一个类的符号引用: 并且检查这个符号引用代表的类是否已经被加载.解析和初始化过.如果没有,那必须先 ...

  9. 配置文件一mybatis-config.xml

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC & ...

  10. JS调用C++

    1.注册C++函数. //注册回调函数宏 //根据不同需要支持注册两个函数原型,注意CONNECT_JS_CALL_SIMPLE_HANDLER中注册的函数 //需要提前和HTML调用协调好,参数必须 ...