【发布时间】:2018-05-24 22:23:49
【问题描述】:
特别是在while循环中
getchar() 函数的输入是什么变量?如果是 's' 在哪里表达?
-
这个功能好用吗?我发现各种“读取”函数(如gets()、fgets() 或scanf())存在问题。这个会不会像其他人一样出现问题?
char * mygets(char *s) { int i = 0, ch; while ((ch = getchar()) != '\n') s[i++] = ch; s[i] = '\0'; return s; } main() { char input[21]; printf("type anything:\n"); mygets(input); printf("output: %s\n", input); }
【问题讨论】:
-
"这个功能好用吗?" --> 不,因为它会受到缓冲区溢出的影响。至少有5个缺点。然而,如果 OP 首先发布了答案似乎是什么,那就太好了。否则看起来像是在做 OP 的作业。
-
@chux 操作?好吧,我相信 s 正在提供 getchar() 函数,但我看不到向它声明此信息的位置。不,这不是家庭作业。