孤鹤~ 2021-03-13 16:22 采纳率: 0%
浏览 47

getchar()清理缓存

void input(char students[][8],float grades[][5]) {
	int i,j;
	for(i=0;i<5;i++){
		printf("input name:");
		gets(students[i]);
		getchar();
		for(j=0;j<5;j++){
			printf("input grade%d:",j+1);
//			getchar();
			scanf("%4.1f",&grades[i][j]);
			getchar();
		}
	}

输入的时候会有回车的缓存,但是这三个地方加getchar,输入的时候总会出错

  • 写回答

1条回答 默认 最新

  • cpp_learners 2021-03-13 16:47
    关注

    如果你的代码没问题,那就换一种清空输入缓冲去的方法,下面给推荐一个万能的。

    char c;		// 清空输入缓冲区
    while ((c = getchar()) != '\n');
    评论

报告相同问题?

悬赏问题

  • ¥15 yolov5目标检测并显示目标出现的时间或视频帧
  • ¥15 电视版的优酷可以设置电影连续播放吗?
  • ¥50 复现论文;matlab代码编写
  • ¥30 echarts 3d地图怎么实现一进来页面散点数据和卡片一起轮播
  • ¥15 数字图像的降噪滤波增强
  • ¥15 心碎了,为啥我的神经网络训练的时候第二个批次反向传播会报错呀,第一个批次都没有问题
  • ¥15 MSR2680-XS路由器频繁卡顿问题
  • ¥15 VB6可以成功读取的文件,用C#读不了
  • ¥15 如何使用micpyhon解析Modbus RTU返回指定站号的湿度值,并确保正确?
  • ¥15 C++ 句柄后台鼠标拖动如何实现