需要澄清getchar()和换行符

Raj*_*Raj 4 c c++ getchar

我对使用getchar()从用户读取字符输入有疑问.

char char1, char2;
char1 = getchar();
char2 = getchar();
Run Code Online (Sandbox Code Playgroud)

我需要将2chars作为用户的输入.在这种情况下,如果用户输入'A'后跟a newline的字符'B',然后输入字符,将存储的内容char2- 是换行字符还是字符'B'

我在Windows上的CodeBlocks上尝试过它,并且char2实际上存储了换行符,但我打算用它来存储该字符'B'.

我只是想知道预期的行为是什么,以及它是否依赖于编译器?如果是这样,turbo C和mingW之间有什么区别?

P.P*_*.P. 7

是的,您必须在每次输入后使用换行符:

char1 = getchar();
getchar(); // To consume `\n`
char2 = getchar();
getchar(); // To consume `\n`
Run Code Online (Sandbox Code Playgroud)

这不依赖于编译器.这适用于所有平台,因为在每个输入行的末尾都会有回车(尽管实际换行可能因平台而异).