单链表里的一个小问题
这里是我打的一个单链表录入信息的代码,单链表那部分的代码没有问题,可以正常执行,可为什么ch=getchar()这里,程序里面没有出现呢?而是直接结束了??很懵。。
int main()
{
int n,ch;
struct stuNode *temp;
printf("输入需要计入的学生个数:");
scanf("%d",&n);
temp=input(n);
output(temp);
printf("是否要插入新的链表?(y/n)\n");
ch=getchar();
if(ch=='y')
{
input2(temp);
}
else
{
return 0;
}
}
这里是main函数里的部分,下面是运行的结果
麻烦大佬们看一看问题是不是出现在这里{:10_266:} {:10_266:} ch=getchar(); 把输入吞了吧 去掉换行
printf("是否要插入新的链表?(y/n)); 它接收那个换行符 我觉得应该是输入流的问题 你要使用getchar()的话我觉得之前还需要一个getchar()来获取前面过scanf的换行符 因为你getchar()获得的是输入流里面的换行符 所以不符合第一个if条件就直接退出了 大概是这样
临时用户3.14159 发表于 2021-8-30 19:24
我觉得应该是输入流的问题 你要使用getchar()的话我觉得之前还需要一个getchar()来获取前面过scanf ...
了解了,感谢 大马强 发表于 2021-8-30 18:06
ch=getchar(); 把输入吞了吧
明白了,确实是个小细节
页:
[1]