char zhanghao[10];
shuru:
printf("\n\n\n\n\t\t\t请输入管理员账号:");
scanf("%s",zhanghao);
if(strcmp(cszh,zhanghao)!=0)
{
system("cls");
printf("您输入的管理员账号不存在,请重新输入;");
goto shuru;
}
如果scanf("%s",zhanghao );
改成gets(zhanghao);会先显示输入的账号不存在,请重新输入
这是为什么呢??
一、指代不同
1、scanf:是C语言中的一个输入函数。
2、gets:从标准输入设备读字符串函数。
二、读取方式不同
1、scanf:是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。
2、gets:可以无限读取,不会判断上限,以回车结束读取,所以程序员应该确保buffer的空间足够大,以便在执行读操作时不发生溢出。
三、数据流向不同
1、scanf:函数 scanf() 是从标准输入流stdin (标准输入设备,指向键盘)中读内容的通用子程序,可以说明的格式读入多个字符,并保存在对应地址的变量中。
2、gets:从stdin流中读取字符串,直至接受到换行符或EOF时停止,并将读取的结果存放在buffer指针所指向的字符数组中。换行符不作为读取串的内容,读取的换行符被转换为‘\0’空字符,并由此来结束字符串。
参考资料来源:百度百科-gets
参考资料来源:百度百科-scanf
对。。。是前边的程序有问题。。。谢啦
本回答被网友采纳