读书人

新手scanf和gets

发布时间: 2012-04-15 18:39:21 作者: rapoo

新手求教:scanf和gets
请大家帮帮忙看看这个问题:程序功能是收集学生姓名成绩。

C/C++ code
#include <stdio.h>#include <string.h>#define N 10int main(int argc, char *argv[]){    static char name[N][25];    static int score[N];    int i,j;    for(i = 0;i < N;i++)    {        printf("please input student[%d]'s name:",i);        //gets(name[i]);        //这里如果使用gets会出现第二次输入跳过的情况 ,而使用scanf就正常,为什么?                 //有人说写两遍就行了,我很不解,问题出在哪?        scanf("%s",name[i]);        printf("please input the score of %s:",name[i]);        scanf("%d",&score[i]);            }    for(i = 0;i < N;i++)    {        printf("%s: %d\t",name[i],score[i]);    }        return 0;}


[解决办法]
应该是缓冲区残留'\n'导致的.
[解决办法]
在输入字符串时最好清除缓冲区内容

读书人网 >C++

热点推荐