C++初学者指南 第十一篇(8)

    技术2022-05-19  22

    转载请标明出处:http://blog.csdn.net/zhangxingping

    基本技能11.8:读写文本文件

    最简单的读取文本文件或者写入到文本文件的方法就是使用<<>>操作符。例如,下面的程序写入一个整型数,浮点数和字符串到一个名称为test的文件中:

    //写入文件 #include <iostream> #include <fstream> using namespace std; int main() { ofstream out("test"); if (!out) { cout << "Cannot open file.\n"; return 1; } out << 10 <<" " << 123.23 << "\n"; out << "This is a short text file."; out.close(); return 0; }

    下面的程序则从上面程序写入的文件中读出一个整型数,一个浮点数,一个字符和一个字符串:

    //读取文件 #include <iostream> #include <fstream> using namespace std; int main() { char ch; int i; float f; char str[80]; ifstream in("test"); if( !in) { cout <<"Cannot open file." ; return 1; } in >> i; in >>f; in >> ch; in >>str; cout << i << " " << f << " " << ch <<"\n"; cout << str; in.close(); return 0; }

    必须明确的是当我们使用>>操作符来读取文本文件的时候,是会进行一定的字符转换的。例如,空白字符将会被忽略。如果我们不想进行这样的字符转换,我们必须以二进制方式打开文件。另外,还要明确的是,当使用>>读取字符串的时候,输入会在遇到第一个空白字符的时候就停止了。

     

    专家答疑:

    问题:正如你在篇章1中讲到的那样,C++C的超集。那我知道在C中定义了自己的输入/输出系统。这个系统在C++中可以使用吗?如果可以使用,我们应该在C++程序中使用这个系统吗?

    解答:对于第一个问题的答案是肯定的。C语言中的输入/输出系统在C++中也是可以使用的。对于第二个问题的答案则不完全是否定的。C语言中的输入/输出系统不是面向对象的。然而这个系统现在还被广泛地使用着,它的效率高,开销小。因此,在一些专业性较强的程序中,选择C语言的输入/输出系统则是不错的选择。关于C语言中的输入/输出系统,更多的信息可以参见我的另外一本书《C++完全参考手册》

     

    练习:

    1. 哪个类可用来创建一个输入文件?

    2. 哪个函数可用来打开一个文件?

    3. 我们是否可以使用 << 和 >> 来对文件进行输出和输入呢?


    最新回复(0)