【发布时间】:2017-09-26 07:50:27
【问题描述】:
- 列表项
我在使用getchar() 方法时遇到问题。我正在尝试计算一个小型装配模拟器,其中包含用户以ADD Rx Ry 形式编写的8 个命令,其中Rx 和Ry 是寄存器.我不允许使用字符串或数组,所以唯一的选择是逐字符读取。
我的问题是我不知道如何从输入文本的一行中读取多个字符并将其放入变量中。例如ADD Rx Ry我想将A存储在ch1中,D在ch2 和D 在ch3 然后跳过空格验证R 并将x 存储在一个变量中,然后对于y 也是如此。
奇怪的是,当我在第一个命令之后输入第二个命令时,下面显示的程序不会显示完全相同的打印值(打印只是为了调试)
do{
ch1=getchar();
ch2=getchar();
ch3=getchar();
if(ch1=='E' && ch2=='N'&& ch3=='D'){
break;
}
printf("%c",ch1);
printf("%c",ch2);
printf("%c",ch3);
}while(1);
【问题讨论】:
-
你有什么意见?它包括换行符吗?你读过换行符吗?你期望什么输出?你得到什么输出?
-
你也必须阅读换行符。