【发布时间】:2013-11-10 13:03:04
【问题描述】:
我试图使用gets() 从用户那里获取一个字符串,但程序似乎正在通过gets()。用户没有暂停输入。为什么gets() 什么都不做?
char name[13];
printf("Profile name: ");
gets(name);
printf("\n%s", name);
【问题讨论】:
-
@DerekDrummond 输入 12 个字符,最后一个必须是
'\0'。 -
请使用
fgets(name, sizeof name, stdin)而不是gets()问题被多次回答 看到一个答案stackoverflow.com/questions/7231349/… -
也不要使用
scanf来读取字符串。只需使用fgets。 -
我相信您可以在
scanf格式的末尾留下一个空格,以使其消耗输入中的任何空格(例如尾随换行符)。但不要引用我的话。 -
我试过 fgets(name, sizeof name, stdin) 但它被忽略了。很遗憾,gets() 曾经如此简单,现在被笨重的东西所取代。