注意的问题
这题本身并不难,主要是想说明getchar()的问题。
while((ch = getchar())!='\n'){
str += ch;}
我本来以为,像上述代码那样写,并不能达到“输入一串字符”的目的,
我以为,getchar()就是一个字符一个字符地输入,输入一次就要敲一下回车,
但是实际并非如此。
实际上,getchar()直接从缓冲区读取用户输入的内容:
> http://cplusplus.com/reference/cstdio/getchar/?kw=getchar
>function<cstdio>
getchar
int getchar ( void );
Get character from stdin
Returns the next character from the standard input (stdin).
也就是说,用户只管输入,没回车之前不会读取。
用户输入回车后,getchar才开始运作,由于缓冲区有一堆字符,
加上while循环,getchar逐一读取了每个字符,
通过str+=ch,成功地获取了用户输入的所有字符。
之后再反向输出就好了。