gets()
不再是标准,它可能会导致缓冲区溢出,因此您应该使用fgets()
in-order 读取直到行尾。为了逐个字符地读取字符,直到遇到空格,您可以使用getc()
如下所示。
检查以下代码:
#include <stdio.h>
int main(void) {
int i=0;
char ch;
char a[20];
while(((ch = getc(stdin)) != ' ') && i<19)
a[i++] = ch;
a[i] = '\0';
printf("%s\n",a);
return 0;
}