C++编程思想 第1卷 第2章 文件的读写

  在C语言中,完成打开和处理文件这样复杂的操作,需要对C语言有较深的了解。然而C++
语言的iostream库提供了一种简单的方法来处理文件。
  为了读而打开文件,要创建一个ifstream对象,它的用法与cin相同,为了写而打开文件,要
创建一个ofstream对象,用法与cout相同。一旦打开一个文件,就可以像处理其他iostream
对象那样对它进行读写,非常简单。
  在iostream库中,一个非常有用的函数是getline(),用它可以把一行读入的string对象中以
换行符结束。getline()的第一个参数是ifstream对象,从中读取内容,第二个参数是stream

对象。函数调用完成之后,string对象就装载了一行内容。


//: C02:Scopy.cpp
// From Thinking in C++, 2nd Edition
// Available at http://www.BruceEckel.com
// (c) Bruce Eckel 2000
// Copyright notice in Copyright.txt
// Copy one file to another, a line at a time
#include <string>
#include <fstream>
using namespace std;

int main() {
  ifstream in("Scopy.cpp"); // Open for reading
  ofstream out("Scopy2.cpp"); // Open for writing
  string s;
  while(getline(in, s)) // Discards newline char
    out << s << "\n"; // ... must add it back
	getchar();
} ///:~


  为了打开一个文件,只要将欲建立 的文件名交给ifstream和ofstream对象即可。
  while循环的基本思想是用while后面带括号中的表达式来控制下一条语句(也可以是用
大括号括起来的很多语句)的执行。只要括号中的表达式,在这个例子getline(in,s) 产生
“true”结果,则继续执行由while控制的语句。
  如果getline()成功读取一行,它就返回"true"值。如果到达输入结束,则返回“false”。
  while循环逐行读取输入文件,然后将它们写入到输出文件。
  getline()逐行读取字符,遇到换行符终止,终止符是可以改变的。getline()将丢弃换行符
而不把它存入string对象。因此,想是拷贝的文件看上去和源文件一样,必须加上换行符




输出
在工程目录下要有Scopy.cpp
然后输出就是 工程目录的 Scopy2.cpp ,跟Scopy.cpp文件内容一样

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值