在下面的程序中,如果尝试将float值赋给变量' a',我在第二行输出中得到奇怪的值,这与' a'无关。 / p>
这是我的代码:
#include <iostream>
using namespace std;
void add( int , int );
void add( float , int );
int main()
{
int a, b;
float c;
cout << "Enter a, b, c - ";
cin >> a >> b >> c ;
add( a , b );
add( c, b );
return 0;
}
void add( int a, int b){
cout << "a + b = " << a + b << endl;
}
void add( float a, int b){
cout << "b + c = " << a + b << endl;
}
示例输入:
2.4 2 2
示例输出:
a + b = 2
b + c = 4.59121e-41
我添加了
cout&lt;&lt; a&lt;&lt; endl&lt;&lt; b&lt;&lt; endl&lt;&lt; ℃下;&LT; ENDL;
在调用函数之前,这个特定的行给出了
2
0
4.59135e-41
请解释此输出。为什么b = 0?
答案 0 :(得分:1)
当代码将值读入int
并且输入为2.4
时,它会读取2
然后点击小数点并停止;小数点不是整数输入的有效字符。所以a
获取值2.然后代码尝试将下一个整数值读入b
,然后失败,因为没有数字,只有小数点。之后,由于先前的失败,任何进一步的阅读尝试也将失败。