【发布时间】:2014-06-01 18:42:13
【问题描述】:
我是编程和学习 C 的新手:
printf("What are your two initials?\n");
firstInit= getchar();
lastInit = getchar();
=========================================
printf("What are your two initials?\n");
firstInit= getchar();
lastInit = getchar();
getchar();
我知道,在第一段代码中,如果我输入ZK作为首字母,Z会放在firstInit中,而回车键代表的'\n\会放在lastInit中。剩余的 K 将存储在后续的 getchar() 中。但是,在第二段代码中,我正在阅读的书说,如果我输入 ZK 作为首字母,firstInit 将保存 Z,lastInit 将保存 K。我只是认为需要清除缓冲区每次按回车键后。
对不起,如果这个帖子不允许,如果需要,将删除。
【问题讨论】:
-
原因很可能是由于在调用 getchar() 之前使用了“scanf()”系列函数之一。但是,这不能从提供的代码的 sn-p 中确定。请编辑问题并添加足以让其他人重现该问题的代码。