【发布时间】:2017-04-10 14:55:27
【问题描述】:
我正在尝试使用 c 制作 20 个问题的游戏。以下是其中一个函数的代码摘录。
int question_input(void)
{
char q[100];
int i=0;
printf("Enter the question or say if you want to guess\n");
scanf("%[^\n]",q);
i=check_if_guess(q);
if(i==0)
{
printf("Say yes or no\n");
scanf("%s",q);
}
return i;
}
我在执行和调试时遇到一般保护错误,我发现问题出在
scanf("%[^\n]",q)
声明。
如果将相同的语句更改为"%s",那么我不会遇到分段错误。 get(一般保护错误)和fgets(根本不要求输入)等函数也无法接受输入。
更好奇的是,当我在单独的文件中执行这些语句时,没有其余代码,它们可以正常执行。
即使我尝试“%99[^\r\n]”,它也显示相同。
请帮忙
【问题讨论】:
-
你需要显示函数
check_if_guess。 -
@SiddharthKailasam 是对的,所以它必须与您的其余代码有关。也许您没有先处理上一行中的
\n? -
试试
scanf(" %99[^\n]", q);
标签: c