我已经为此苦苦挣扎了一个多小时,但我似乎无法找出为什么会出现此错误。
int inp, count;
char numBuff[21];
count = 0;
while((inp=getchar()) != EOF) { // get Value (last field)
printf("input is '%c'\n", inp);
if (inp == '\n') break;
if (inp == ' ') {
continue;
}
numBuff[count++] = inp;
printf("go back through loop\n");
}
printf("Out!");
numBuff[count] = '\0';
如果我输入 1013 我会得到以下信息
input is '1'
go back through loop
input is '0'
go back through loop
input is '1'
go back through loop
input is '3'
go back through loop
input is '
'
Segmentation fault (core dumped)
我可以从中收集到的唯一信息是,当我检查 inp == '\n' 时它失败了,但为什么呢?我通过循环 printf 将 go 返回到检查 if inp == '\n' 之后,它也从未达到那个,所以我知道它在那里发生。