zoukankan      html  css  js  c++  java
  • fputs与fgets

    1.      fputs

    函数名fputs 
      : 送一个字符到一个流中 
      : int fputs(char *string, FILE *stream); 

     

    说明:

    fputs是一种函数,具有的功能是向指定的文件写入一个字符串(不自己主动写入字符串结束标记符‘’)。成功写入一个字符串后,文件的位置指针会自己主动后移。函数返回值为非负整数;否则返回EOF(符号常量,其值为-1)

    缓冲区string中保存的是以'/0'结尾的字符串。fputs将该字符串写入文件stream,但并不写入结尾的'/0'。与fgets不同的是。fputs并不关心的字符串中的'/n'字符,字符串中能够有'/n'也能够没有'/n'
    程序例

    #include <stdio.h> 


    int main(void) 

       /* write a string to standardoutput */ 
       fputs("Hello world ", stdout); 

       return 0; 

     

    也能够输出到一个文件流

    2.      fgets

    函数名fgets 
      : fgets从指定的文件里读一行字符到调用者提供的缓冲区中

      : char *fgets(char *string, int size,FILE *stream); 

     

    说明:

    如今说说fgets函数,參数string是缓冲区的首地址。size是缓冲区的长度,该函数从stream所指的文件里读取以'/n'结尾的一行(包含'/n'在内)存到缓冲区string中。而且在该行末尾加入一个'/0'组成完整的字符串。

    假设文件里的一行太长,fgets从文件里读了size-1个字符还没有读到'/n'。就把已经读到的size-1个字符和一个'/0'字符存入缓冲区。文件里剩下的半行能够在下次调用fgets时继续读。

    假设一次fgets调用在读入若干个字符后到达文件末尾,则将已读到的字符串加上'/0'存入缓冲区并返回,假设再次调用fgets则返回NULL,能够据此推断是否读到文件末尾。

    注意:

    对于fgets来说,'/n'是一个特别的字符,而'/0'并无不论什么特别之处,假设读到'/0'就当作普通字符读入。假设文件里存在'/0'字符(或者说0x00字节)。调用fgets之后就无法推断缓冲区中的'/0'到底是从文件读上来的字符还是由fgets自己主动加入的结束符。所以fgets仅仅适合读文本文件而不适合读二进制文件。而且文本文件里的全部字符都应该是可见字符。不能有'/0'
    程序例

    #include <string.h> 

    #include <stdio.h> 

    int main(void) 

       FILE *stream; 
       char string[] = "This is atest"; 
       char msg[20]; 

       /* open a file for update */ 
       stream =fopen("DUMMY.FIL", "w+"); 

       /* write a string into the file*/ 
       fwrite(string, strlen(string), 1,stream); 

       /* seek to the start of the file*/ 
       fseek(stream, 0, SEEK_SET); 

       /* read a string from the file */ 
       fgets(msg, strlen(string)+1, stream); 

       /* display the string */ 

       printf("%s", msg); 

       fclose(stream); 
       return 0; 

  • 相关阅读:
    touch命令
    cd命令
    通配符
    速查命令
    一些技巧
    从零开始用 Flask 搭建一个网站(四)
    【老板来了你立刻知道!】人脸识别+手机推送
    React Native 一些事
    React-Native 工程添加推送功能 (iOS 篇)
    集成 jpush
  • 原文地址:https://www.cnblogs.com/yjbjingcha/p/7237468.html
Copyright © 2011-2022 走看看