【发布时间】:2016-07-27 19:13:11
【问题描述】:
我正在使用 GCC 来编译我的 C 代码。
我的第二个scanf 并没有停下来获取输入。
它只读取第一个scanf 并打印两个语句,一个是我在字符串中输入的,另一个是空白的。
int main (void) {
setvbuf(stdout, NULL, _IONBF, 0);
char string[25] = {'\0'};
char c;
scanf(" %s", string);
scanf(" o%c", &out);
printf("Input is : %s \n\n", string);
printf("Out is: %c", out);
return 0;
}
而不是得到
输入是我输入的任何内容,并提示输入一个字符作为输出
我得到如下所示的输出
Input is : whatever i typed
Out is:
程序终止。有人可以帮忙吗。我做了一些研究,并尝试在 %c 之前放置一个空格用于输出和字符串,但仍然没有发生任何事情。
【问题讨论】:
-
请说明exaclty您提供了什么输入。最好只运行程序并粘贴到 exact 日志中。您的第二个
scanf期望输入包含字母o后跟另一个字符。这真的是你想要的吗? -
o真的是格式字符串" o%c"吗?请注意,%s在非空格字符后的第一个空格处停止读取。