scanf();后会将“回车”,存放在缓存中;执行scanf之后用fflush(stdin)来清理缓存
gets(s)函数与scanf("%s", &s)相似, 但不完全相同, 使用scanf("%s", &s)
函数输入字符串时存在一个问题, 就是如果输入了空格会认为输入字符串结束,
空格后的字符将作为下一个输入项处理, 但gets() 函数将接收输入的整个字符
串直到回车为止。
gets(s)函数中的变量s为一字符串。如果为单个字符, 编译连接不会
有错误, 但运行后会出现"Null pointer asignmemt"的错误。
#include "stdio.h"
#define max 100
int main()
{
char s1[max],s2[max],s3[max],s4[max];
printf("Input s1:");
scanf("%s",&s1);
fflush(stdin);
printf("Input s2:");
scanf("%s",&s2);
fflush(stdin);
printf("Input s3:");
gets(s3);
printf("Input s4:");
gets(s4);
puts(s1);
puts(s2);
puts(s3);
puts(s4);
return 0;
}
温馨提示:内容为网友见解,仅供参考