注册 登录
编程论坛 C++教室

谁解释下这个吧,看了好久没理解

雪花神剑 发布于 2009-07-24 20:41, 545 次点击
#include"iostream"
using namespace std;
int main(void)
{
    getchar();
    cout <<getchar();
    return 0;
}


比如我输入一个字符,回车是10
输入N个字符(N>=2)  回车是第二个字符的ASCII值 ,为什么啊
9 回复
#2
明次2009-07-24 20:45
这个问题我也想知道,一起期待答案吧..
#3
黯然神伤2009-07-24 21:53
这个可能与编译器对越界的处理有关,不同编译器对越界的处理是不一样的~~
#4
mfkblue2009-07-24 21:54
我猜下,两个getchar(),多少输入当然输出是每二个了。
输入一个时,10可能是回车的ascll吧.
#5
HD_MC_HRL2009-07-24 22:36
显示的是第二次的输出,回车的ASCll码10
#6
yu5890681yu2009-07-24 23:11
回复 楼主 雪花神剑
输入一个字符,运行了gerchar().输入回车输入到第二个getchar();然后运行cout
结果就是没次都是输出输入的第二个字符
#7
iweek2009-07-24 23:19
你看看getchar() 的原型就可以了

int getchar();

这个函数返还值是一个 int 类型的
#8
pangding2009-07-24 23:54
回复 楼主 雪花神剑
感觉大家已经解释的差不多了,基本就是那意思。

一共两个getchar。第一个读了一下没用,第二个读到的,要么是回车就是10.要不就是其它你输入字符的ASCII码的值。

getchar 返回的是个 int。我觉得就这么多~
#9
y_afu2009-07-25 12:30
首先你要理解getchar()函数的功能是输入一个字符即一个字节然后将指针移到下一个输入符号,另外你要了解ASCII码值,空格和回车虽然看不见但都是一个符号,比如你上面提到的回车其实就是一个符号在ASCII中的值为10,因此你在输入一个符号回车后其实就是输入了两个符号,当调用第一个getchar()函数后指针就指向了下一个字符即回车符也就是10,所以输出当然是10了。
#10
nikeyibufu2009-07-27 11:52
首先你要理解getchar()函数的功能是输入一个字符即一个字节然后将指针移到下一个输入符号,另外你要了解ASCII码值,空格和回车虽然看不见但都是一个符号,比如你上面提到的回车其实就是一个符号在ASCII中的值为10,因此你在输入一个符号回车后其实就是输入了两个符号,当调用第一个getchar()函数后指针就指向了下一个字符即回车符也就是10,所以输出当然是10了。
我觉得这位老兄解释的很到位。出入两个字符看看
1