这可能是一件简单的事情,但经过几个小时的谷歌和调试后,我无法弄明白。基本上我基本上想要获得用户输入,然后另一个函数验证输入并返回TRUE或FALSE(如果为TRUE)或FALSE(如果输入是否良好...接受)。
我的代码是多个文件,所以我只会发布相关部分:
do {
printf("Enter customers surname: ");
fgets(userinput, sizeof(userinput), stdin);
} while (validCustData(datapos, userinput) != TRUE);
调试调试:使用code :: blocks debugger,它会跳过fgets()语句fgets()语句,并尝试验证导致崩溃的NULL指针NULL指针。我已经尝试了fflush(stdin)和fflush(stdin)以及我自己的readrestofinput()函数readrestofinput()函数来清除缓冲区。但没有任何工作。有什么帮助吗?
编辑:我现在有工作。userinput
已NULL
,但现在我修复了我有不同的错误。
0 764746A7 msvcrt!fgets() (C:\Windows\syswow64\msvcrt.dll:??)
1 60758FC7 ?? () (??:??)
2 ?? ?? () (??:??)
Program received signal SIGSEGV, Segmentation fault.
In msvcrt!fgets () (C:\Windows\syswow64\msvcrt.dll)