c中使用fgets时出错

时间:2015-09-19 20:56:38

标签: c stack fgets

我已经用堆栈编写了一个平衡的符号检查器。其他一切都有效,我已经完全测试了pop push destroy isempty等所有功能。问题是我的fgets用法。

//fgets
char input[10];
printf("Enter a 10 character input for balance: ");
fgets(input, 10, stdin);

"不工作的部分"是以下代码

int i = 0;
for (i < 10; i++;){
    if (input[i] == '{' || input[i] == '[' || input[i] == '(' || input[i] == '<'){
        push(&st2, input[i]);

    }
}

我知道我的推送功能正在运行,因为我已将其作为独立测试。类似的东西:

push(&st2, '{');
当我尝试显示我的堆栈并正确推送值时,

完全正常。 在这一点上,我认为带有fgets的初始char数组只是没有正确初始化,或者我已经设法搞砸了if / for循环。

当我运行程序时,if语句条件永远不会被满足,即使我键入{[(或&lt; into stdin。当我尝试打印输入[10] char数组时,我的程序也崩溃了。

0 个答案:

没有答案