• 输入输出函数读写细节


    红心字符I/O

    int fgetc( FILE *stream );
    int getc( FILE *stream );
    int getchar( void );

    fgetc、getc和getchar:从流中读取下一个字符并返回(getchar总是从标准输入中读);如果流中没有可读的字符那么返回EOF

    int fputc( int character, FILE *stream );
    int putc( int character, FILE *stream );
    int putchar( int character );

    fputc、putc和puchar:把单个字符写到指定的流中(putchar总是写到标准输出);无论何种原因,失败时均返回EOF

    红心非格式化行I/O

    char * fgets( char *buffer, int buffer_size, FILE *stream );
    char *gets( char *buffer );
    
    int fputs( char const *buffer, FILE *stream );
    int puts( char const *buffer );

    fgets从指定流中读取字符并保存到buffer中,直到出现下列两种情况时fgets才停止读取:(1)读到了换行符(newline)并将换行符存入buffer中;(2)读取了buffer_size – 1 个字符。这两种情况下都会在buffer最后加一个NUL字符从而构成一个字符串。(注:对于情况(1)是在换行符newline之后添加NUL字符,并不会覆盖掉换行符。) 如果返回NULL说明读到了文件末尾。否则返回一个指向buffer的指针。

    注:NUL不在strlen计数范围内,而换行符newline在strlen的计数范围之内。

    gets从标准输入读取一行(也就是说gets一直读到换行符为止,不管buffer能不能装得下,这也正是gets的缺陷所在,因此不推荐使用该函数),但它不把结尾的换行符newline保存到buffer中。

    fputs:传递给fputs的buffer参数必须包含一个以NUL结尾的字符串,fputs将该字符串写到指定的流中,字符串中有几个换行符就写几个换行符,没有就一个也不写。

    puts:把字符串写到标准输出,字符串中有几个换行符就写几个换行符,并且在写完后,它还会额外添加一个换行符到标准输出。

  • 相关阅读:
    ruilei.cnblogs 访问量突破20万
    VSTS2008 Load Test Agent
    失落的星球 Lost Planet 秘籍
    C#去除特殊字符串
    Linq Coding Part Nine(IEnumerable、IQueryable、Set)
    Web Services Software Factory tutorial (1 of 5)
    迅雷新闻快讯区JS代码剖析
    Interfaces Topic
    前台如何调用后台事件
    [关注]个税起征点8000元什么时候到来?
  • 原文地址:https://www.cnblogs.com/nufangrensheng/p/3610510.html
Copyright © 2020-2023  润新知