C语言的中gets(s)和scanf("%s",s)的区别0
#include
#include
#include
#include
#define classes 3
#define grades 5
int a[classes][grades];
void Enter();
void show();
void main()
{
char ch;
for(;;)
{
do{
printf("input'E',输入数据\n");
printf("input'R',读取数据\n");
printf("input'Q',退出程序\n");
flushall(); //功能清除所有缓冲区,头文件:stdio.h
ch=toupper(getchar());
}while(ch!='E'&&ch!='Q'&&ch!='R');
switch(ch)
{
case 'E':Enter();break;
case 'R':show();break;
case 'Q':exit(0);
}
}
}
int get(int num)
{
char s[80];
printf("输入%d号学生成绩:",num+1);
scanf("%s",s);//gets(s);//
return(atoi(s));
}
void Enter()
{
int i,j;
for(i=0;i
{
printf("%d班同学的成绩:\n",i+1);
for(j=0;j
a[i][j]=get(j);
}
}
void show()
{
int i,j;
for(i=0;i
{
printf("%d班同学的成绩:\n",i+1);
for(j=0;j
printf("%d\t",a[i][j]);
printf("\n");
}
}
在get函数中为什么用gets(s)会出错,而scanf("%s",s)不会出错,能解释一下gets(s)和scanf("%s",s)的区别吗?