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;
    }
  • 相关阅读:
    Java基础-String、StringBuffer、StringBuilder的区别
    Java基础-String类能被继承吗,为什么
    Java基础-Java中的基本数据类型是什么,各自占用多少字节
    JAVA关键字
    Java 栈(stack)与堆(heap) 详解
    Hibernate--hibernate.hbm.xml详解
    Hhibernate--映射继承关系
    C--c语言模拟java的linkedList
    C--调试基本命令
    C--指针
  • 原文地址:https://www.cnblogs.com/daniel/p/52546.html
Copyright © 2011-2022 走看看