c - 如何从 getchar fn 读取 2 位整数?
问题描述
下面给出的代码是我试图实现的。
这个想法是用户只要不按两次回车就会输入值;当他显示值时,但是当输入 2 位值时,由于限制,它只返回一个值getchar
,如何实现相同的目标同时读取两个数字?
#include<stdio.h>
int ptr[3][18];
void main()
{
printf("\n Add a digit or DOUBLE Press enter to display values\n");
int i=1,j,a=1,c=1,b,d,e,z=1;
if(i<=a)
scanf("%d",&ptr[1][i]);
me1:
++i;
b=getchar();
if(b=='\n')
{
d=getchar();
if(d=='\n')
{
goto me2;
}
else
{
e=d-'0';
ptr[1][i]=e;
z++;
goto me1;
}
}
me2:
for(j=1;j<=z;j++)
{
printf("ptr[1][%d]= %d\n",j,ptr[1][j]);
}
}
解决方案
切勿在 scanf() 之后使用 getchar()。因为 scanf() 会读取标准输入流,直到遇到换行符。它将忽略标准输入中的换行符。所以,你需要放一个多余的“getchar()”来读取那个“\n”
推荐阅读
- python - 如何查看/打印保存在变量中但已删除代码的函数?
- json - 无法识别在 csv 文件中存储和使用的 json 请求正文的正确格式,以便在空手道场景中使用
- jquery - 如何在 jQuery 日期选择器中为禁用日期添加工具提示?
- vb.net - Vb.Net 2019 Windows 窗体应用程序无法在表单加载事件中连接到 Openoffice
- javascript - 使用 QuaggaJS 停止后如何启动相机
- d3.js - 在另一个过渡正在进行时开始一个过渡
- angular - 对组件的变化做出反应,避免使用 location.reload()
- powershell - 将输出转换为 CSV 和 Out-Grid
- .net - Tizen 手表表圈交互
- matlab - 在单独的回调函数中更新 GUI 弹出菜单