初学者c++;:为什么这个代码会给出不同的结果? 我是一个初学用C++写东西的初学者。在下面的代码中,如果我为“adig”输入56,我会得到一个结果,如果我仍然输入56,我会得到另一个结果,但是从下面代码中的两行中删除注释标记(这样它们就成
初学者c++;:为什么这个代码会给出不同的结果? 我是一个初学用C++写东西的初学者。在下面的代码中,如果我为“adig”输入56,我会得到一个结果,如果我仍然输入56,我会得到另一个结果,但是从下面代码中的两行中删除注释标记(这样它们就成为代码的一部分,不再是注释),而是注释初学者c++;:为什么这个代码会给出不同的结果? 我是一个初学用C++写东西的初学者。在下面的代码中,如果我为“adig”输入56,我会得到一个结果,如果我仍然输入56,我会得到另一个结果,但是从下面代码中的两行中删除注释标记(这样它们就成,c++,C++,初学者c++;:为什么这个代码会给出不同的结果? 我是一个初学用C++写东西的初学者。在下面的代码中,如果我为“adig”输入56,我会得到一个结果,如果我仍然输入56,我会得到另一个结果,但是从下面代码中的两行中删除注释标记(这样它们就成为代码的一部分,不再是注释),而是注释coutsumodd(adig); coutPS:不要使用int\u tmain(int-argc,\u-TCHAR*argv[]),即使VS生成了它。对于ITF16,只需int main(int argc
coutsumodd(adig);
coutPS:不要使用int\u tmain(int-argc,\u-TCHAR*argv[])
,即使VS生成了它。对于ITF16,只需int main(int argc,char*argv[])
,或int main(int argc,wchar\u t*argv[])
,就可以了。”…然后您正在打印函数的地址sumodd
”——而不是实际打印地址,因为std::cout
没有合适的重载,地址经过标准转换为bool
true
,这意味着默认情况下打印1
。不能使用cin.get()
为adig
输入56。只有5个将被消耗。在下一次输入操作中,6将保留在输入缓冲区中。adig1-“0”做什么?我在试着理解,我不明白。@LolWalid:从adig1
中减去字符'0'
(在使用最广泛的字符集中为48)的数值。如果adig1
本身是一个数字字符,则结果是该数字的数值。i、 例如,“0”变为0,“1”变为1,“2”变为2,等等。@LolWalid:查看ASCII图表以查看0
的十进制值,然后进行数学运算以查看“5”的ASCII值--“0”的ASCII值将产生什么。(扰流板警报:它将数字的ASCII字符转换为实际数值。)
int sumodd( char adig1)
{
int actualnum = adig1 - '0';
return(actualnum);
}
int _tmain(int argc, _TCHAR* argv[])
{
char adig;
cout << "Enter a number\n";
adig = cin.get();
cout << sumodd(adig);
//sumodd(adig);
//cout << sumodd;
return(0);
}
sumodd(adig);
cout<<sumodd;
int res = sumodd(adig);
cout<<res;