c中scanf和gets,puts混合例题的理解;

xiaoxiao2021-02-28  112

c中scanf和gets,puts混合使用的理解; 例如: void main() { char s1[10],s2[10],s3[10]; scanf("%s",s1); gets(s2); gets(s3); puts(s1); puts(s2); puts(s3);   getch(); } 如果输入是:aaa/enter/bbb/enter,会有怎样的输出? 答案是: aaa bbb aaa bbb | 但如何理解这样的输出呢?     其实是这样的,首先输入aaa 回车,scanf函数遇到回车自动结束接收结束, 则S1中存放aaa,之后回车操作符任然存留在键盘缓冲区,但到了get(S2), 它遇到键盘缓冲区的回车后,结束接收,并清空键盘缓冲区,之后遇到get(S3), 接收bbb,遇到回车,结束接收;     之后的puts(s1);puts(s2);puts(s3);,S1输出aaa自带回车,S2输出为空 自带回车换行,S3输出bbb自带回车到下一行;
转载请注明原文地址: https://www.6miu.com/read-22143.html

最新回复(0)