Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我尝试在 中输入一个字符串char ch[20],我想当我按空格键时它会停止将输入输入到变量中。但是gets()只要我不按回车键,该功能就需要输入。只要不按空格字符,我如何输入?
char ch[20]
gets()
gets()不再是标准,它可能会导致缓冲区溢出,因此您应该使用fgets()in-order 读取直到行尾。为了逐个字符地读取字符,直到遇到空格,您可以使用getc()如下所示。
fgets()
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; }