这样输入的话是正常的
void inputNode(Node* p)
{
printf("请输入书的编号:");
scanf("%d", &(p->book.number)); getchar();
printf("请输入书的名字:");
//fgets(p->book.name, MAXSIZE, stdin);
scanf("%s", &(p->book.name));
printf("请输入书的价格:");
scanf("%d", &(p->book.price)); getchar();
printf("请输入书的分类:");
scanf("%s", &(p->book.clas));
//fgets(p->book.clas, MAXSIZE, stdin);
}
这是正常的流程
但是如果把输入字符串的scanf换成fgets就会卡住
输入字符并按回车后就卡住了。
在visual studio中是这样,但是在vscode中就不会出现这个问题。
调试的时候出现这个
0x00007FF826D2916F (ucrtbased.dll)处(位于 Project1.exe 中)引发的异常: 0xC0000005: 读取位置 0xFFFFFFFFFFFFFFFF 时发生访问冲突。
请问一下怎么解决?
fgets是C语言标准库文件处理的一个函数,是用来读取文件的,并不是获取输入的
不知道你这个问题是否已经解决, 如果还没有解决的话: