zoukankan      html  css  js  c++  java
  • 关于setbuf()缓存的设置 fgets()读入一行字符串

    /*输入:2
      12345
      abcde
      希望输出:
      0:12345
      1:abcde
    */
     
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
     
    int main( void )
    {
            char **instr, **p;
            int i, j;
     
            printf( "num: " );
            scanf( "%d", &j );//不能有"\n"
            if( !j )
                 return 0;
    //fflush( stdin );       // 论坛上讲用fflush()  或 setbuf()都能达到同样的结果,但我用fflush()没有实现.
    setbuf(stdin,NULL);
            instr = (char **)malloc( sizeof(char *) * j );
            if( !instr )
                   return 1;
            memset( instr, 0, sizeof(char *) * j );
            for( i = 0, p = instr; i < j; i++ )
            {
                   printf( "i=%d:", i );
                   *p = (char *)malloc( sizeof(char) * 80 );
                   if( !*p )
                          return 1;
                  fgets( *p,80,stdin );//从标准输入读入一行字符串,包括回车换行符"\n"
                    (*p)[strlen(*p)-1] = '\0';
                    *p++;
            }
     
            for( i = 0, p = instr; i < j; i++ )
            {
                    printf( "%d: %s\n", i, *p );
                    free( *p++ );
            }
            free( instr );
            return 0;
    }
  • 相关阅读:
    前端HTMLCSS
    jedis 连接池的使用
    win8+安装net3.5步骤与常见错误.
    并行线程的生命周期
    OneNote截图快捷键冲突解决方案
    C#中lsitView如何搜索某个子项
    redis哨兵与集群
    git笔记
    微软官方Hololens开发课程介绍
    Markdown使用入门简介
  • 原文地址:https://www.cnblogs.com/daniel/p/52546.html
Copyright © 2011-2022 走看看