zoukankan      html  css  js  c++  java
  • C语言获得文件一行

    C语言获得一行的数据还是比较麻烦的,这里讲一下几种曾经用过的方法。

    第一种,是最笨的方法,就是一个一个字符的读取,也是最容易想到的方法。具体实现如下:
    void   read_line(char   line[])  
     
        FILE   *fp;  
        char   cChar;  
        int   i;  
        fp=fopen("read.txt","r");  
        i=0;  
        cChar=fgetc(fp);  
        while(cChar!=' '   &&   !feof(fp))  
        {  
            line[i]=cChar;  
            i++;  
            cChar=fgetc(fp);  
        }  
        line[i]='';  
        return;  
    }   
    但是,这种方法效率比较低。

    第二种,就是使用Linux环境下,有一个函数getline,说明如下:
    #define _GNU_SOURCE
           #include <stdio.h>
           #include <stdlib.h>

           int main(void)
           {
                FILE * fp;
                char * line = NULL;
                size_t len = 0;
                ssize_t read;
                fp = fopen("/etc/motd", "r");
                if (fp == NULL)
                     exit(EXIT_FAILURE);
                while ((read = getline(&line, &len, fp)) != 1) {
                     printf("Retrieved line of length %zu : ", read);
                     printf("%s", line);
                }
                if (line)
                     free(line);
                return EXIT_SUCCESS;
           }

    第三种,如果使用C++的话,有一个方法比较简单
          ifstream   in("read.txt");  
          string   line;  
          getline(in,   line);  
          cout   <<   line;   

  • 相关阅读:
    博客园-随笔分类批量修改
    【读书笔记】--少有人走的路①:心智成熟的旅程
    自定义菜单用例
    自定义菜单创建接口
    发送消息---被动回复用户消息
    接收消息----接收语音识别结果
    接收消息----接收事件推送
    微信开发入门教程
    Hadoop维护IPC链接
    Hadoop建立IPC连接和数据读写
  • 原文地址:https://www.cnblogs.com/zhanghaifeng/p/3435294.html
Copyright © 2011-2022 走看看