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

本文介绍了如何使用C++中的ofstream和ifstream类来进行文件的写入和读取操作,并通过示例程序展示了具体的实现过程。此外,文章还探讨了C语言的输入/输出系统在C++中的应用情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基本技能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. 我们是否可以使用 << 和 >> 来对文件进行输出和输入呢?

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值