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; 

  • 相关阅读:
    Ajxa验证用户和二级联动的实例(五)
    转载:PuTTY的自动登录设置
    分布式Hbase-0.98.4在Hadoop-2.2.0集群上的部署
    分布式Apache ZooKeeper-3.4.6集群安装
    添加和删除hadoop集群中的节点
    MongoDB中的连接池
    Ubuntu中vi常用命令
    Ubuntu-12.04-server 配置修改静态 IP地址
    Ubuntu 14.04 Server版安装
    在Eclipse上操作Hive-0.13.1-JDBC端口
  • 原文地址:https://www.cnblogs.com/yjbjingcha/p/7237468.html
Copyright © 2011-2022 走看看