• 结构体


    
    #include <stdio.h>
        4
        5 #define MAXTITL   40
        6 #define MAXAUTL   40
        7 #define MAXBKS   4              /* maximum number of books  */
        8
        9 struct book {                     /* set up book template     */
       10     char title[MAXTITL];
       11     char author[MAXAUTL];
       12     float value;
       13 };
       14
       15 int main(void)
       16 {
       17     struct book library[MAXBKS]; /* array of book structures */
       18     int count = 0;
       19     int index;
       20
       21     printf("Please enter the book title.
    ");
      22     printf("Press [enter] at the start of a line to stop.
    ");
      23     while (count < MAXBKS && gets(library[count].title) != NULL
       24                           && library[count].title[0] != '')
       25     {
        26         printf("Now enter the author.
    ");
        27         gets(library[count].author);
       28         printf("Now enter the value.
    ");
        29         scanf("%f", &library[count++].value);
        30   /          while (getchar() != '
    ')
       31        /  continue;       //   [> clear input line         <]
       32        /*getchar();*/
       33         if (count < MAXBKS)
     34         printf("Enter the next title.
    ");
       35     }
       36
       37     if (count > 0)
       38     {
     39         printf("Here is the list of your books:
    ");
       40         for (index = 0; index < count; index++)
    41         printf("%s by %s: $%.2f
    ", library[index].title,
       42             library[index].author, library[index].value);
       43     }
       44     else
     45         printf("No books? Too bad.
    ");
       46
       47     return 0;
       48 }
    
    

    23,24行 :
    gets函数读入字符串,接收到EOF或者换行符结束,读取的换行符被转换成’‘ 空字符
    gets的null有2种情况
    1.feof ( end-of-file)
    2.ferror ( read error)
    输完value,回车第二次就会使title[0] = '' ,会直接结束。

    30,31行:
    吸收上一个回车,防止被下一个title读入

    代码来源:c primer plus 383页

  • 相关阅读:
    Antlr与Regex
    c_str()
    C++ 友元
    C++ 操作符重载
    Remote 'attachhome' failed on nodes:XXX
    RAC安装GI时运行root.sh脚本结果
    clscfg.bin: error while loading shared libraries: libcap.so.1:
    RAC安装重新运行root.sh
    libXext.so.6 libXp.so.6 libXt.so.6 is needed by openmotif21-2.1.30-11.el7.i686
    向数据库中导入AWR数据
  • 原文地址:https://www.cnblogs.com/fazero/p/4892880.html
Copyright © 2020-2023  润新知