【发布时间】:2013-03-22 07:48:50
【问题描述】:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char *method1(void)
{
static char a[4];
scanf("%s\n", a);
return a;
}
int main(void)
{
char *h = method1();
printf("%s\n", h);
return 0;
}
当我运行上面的代码时,提示要求我两次 输入(我只在代码中使用scanf 一次)。这是为什么呢?
(我输入了“jo”;它要求更多输入,所以我再次输入了“jo”。然后它只打印了一次“jo”。)
【问题讨论】:
-
你得到了什么输出?
-
这是一个非常短的数组。您输入的数据是否过多?
-
我输入 jo。它要求另一个输入。然后我再次输入 jo。然后只打印一次 jo。
-
我知道这只是一个sn-p,但你应该始终检查scanf和friends等转换函数的结果。