gpt4 book ai didi

c - 在我调用函数来扫描某些内容后,我的程序无法继续运行?有人能找出问题所在吗? (很长,但请帮忙!)

转载 作者:行者123 更新时间:2023-11-30 14:22:55 26 4
gpt4 key购买 nike

所以第一部分是我从用户那里获得输入,在本例中,输入是“1”作为从另一个函数接收的字符值。

printf ("\nPlease enter 1, 2, 3 or q: ");

option = validateoption();

在 validateoption 函数中:

int validateoption () {  // VALIDATE OPTION FOR FIRST MENU INPUT

int keeptrying = 1, rc;
char after, i;

do
{
rc = scanf ("%c%c", &i, &after);
if (i == 'q')
{
break;
}
else if (rc == 0)
{
printf (" **Invalid input try again: ");
clear();
}
else if (after != '\n')
{
printf (" **Trailing characters try again: ");
clear();
}
else if (i < '1' || i > '3')
{
printf (" **Invalid input try again: ");
}
else
{
keeptrying = 0;
}

} while (keeptrying == 1);

return i;

}

因此输入字符值“1”,然后调用交易函数

    do
{
transaction(accounts, debcred, amount);
} while (option == '1');

这就是问题发生的地方。在交易函数中它有一个for循环

for (i = 0; i < MAX; i++)
{
printf ("Enter an account number (between 1000 and 3999): ");
accounts[i] = validateaccount();

debcred[i] = validatedebcred();

amount[i] = validateamount();

totalinput++;
}

它调用 validateaccount 函数来获取有效的输入。但在这个函数中:

int validateaccount() {  // VALIDATE INPUT FOR ACCOUNT # IN TRANSACTION FUNCTION

int keeptrying = 1, rc;
long i;
char after;

do
{
rc = scanf ("%ld%c", &i, &after);

if (rc == 0)
{
printf (" **Invalid input try again: ");
clear();
}
else if (after != '\n')
{
printf (" **Trailing characters try again: ");
clear();
}
else if (i < 1000 || i > 3999)
{
printf (" **Invalid input try again: ");
}
else
{
keeptrying = 0;
}

} while (keeptrying == 1);

return i;

}

我输入一个输入,然后程序停止运行!我会输入 1000,然后它就什么也不做。它并没有结束,它只是什么都不做,然后输入更多数字,它就变成了无效输入!我不知道发生了什么有人能看到这个问题吗?

最佳答案

我是个白痴。最终输入后​​没有显示任何内容,因为没有 printf 语句再次向用户显示要输入的内容!

关于c - 在我调用函数来扫描某些内容后,我的程序无法继续运行?有人能找出问题所在吗? (很长,但请帮忙!),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13355058/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com