• C/C++分别读取文件,以空格为分隔符


    C语言:

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    int main(int argc, char* argv[])
    {
        int count = 0;
        FILE* fp;
        char str[100];
    
        fp = fopen("test.txt", "r");
        while (fscanf(fp, "%s", str) != EOF)
        {
            printf("%s\n", str);
            count++;
        }
        fclose(fp);
    
        return 0;
    }

    程序输出:

    C++语言:

    (转载)http://www.cnblogs.com/chenliangqiao/archive/2011/07/11/2102741.html
    2.2.3 读写文件

    在这段程序中,我们首先创建了一个输入文件流ifstream的对象fin,并利用它的构造函数将其连接到一个文本文件Date.txt。所谓构造函数,就是这个对象创建的时候所执行的函数。这里,我们使用“Date.txt”作为参数来调用这个构造函数,实际上就是使用这个文件创建fin对象。除此之外,我们还可以使用fin所提供的open()函数来打开一个文件。当我们利用fin成功打开一个文件之后,就可以利用提取符“>>”从fin中提取各种数据。“>>”会以空格为分隔符逐个从文件中读取数据并将其保存到相应的数据变量中。例如,如果文件中的内容如下:

    用户输入的当前日期是:

    1983 7 3

    默认情况下,fin总是从文件的开始部分进行读取的,为了直接读取第二行的内容,我们使用“fin.ignore(256,'\n');”忽略了第一行的内容,将读取位置跳转到第二行。然后,通过提取符“>>”,我们将第二行用空格分割的三个数据分别提取并保存到了三个变量中。

    同样,为了将数据写入文件,我们需要创建一个输出文件流ofstream的对象fout,然后通过它的构造函数或者是open()函数来打开一个文件,将这个文件和fout对象连接起来,然后通过插入符“<<”将数据插入到fout对象,也就实现了将数据写入到它所关联的文件中的目的。整个过程如下图2-9所示:

    clip_image002

    #include <iostream>
    #include <string>
    #include <fstream>
    
    using namespace std;
    
    int main(int argc, char** argv)
    {
        ifstream ifs("test.txt");
        string str;
        int count = 0;
    
        while (ifs >> str)
        {
            cout << str << endl;
            count++;
        }
        ifs.close();
    
        return 0;
    }

    程序输出:

    总结:在C语言中使用fsanf()就可以实现以空格为分隔符读取文件内容。

    而在C++中,ifstream的>>---提取符直接就是以空格为分隔符读取文件内容。

  • 相关阅读:
    阿里云slb实现多域名https
    docker容器互连
    ext4文件系统(转)
    Effective Java 读书笔记(四):泛型
    Effective Java 读书笔记(一):创建和销毁对象
    Effective Java 读书笔记(三):类与接口
    Effective Java 读书笔记(二):对象通用方法
    三种TCP协议聊天室实现
    WebSocket协议探究(三):MQTT子协议
    WebSocket协议探究(二)
  • 原文地址:https://www.cnblogs.com/Robotke1/p/3080178.html
Copyright © 2020-2023  润新知