目前,我有以下幾點:C++的cout使用float產生奇怪的結果
float some_function(){
float percentage = 100;
std::cout << "percentage = " << percentage;
//more code
return 0;
}
這給輸出
percentage = 100
然而,當我添加一些的std :: ENDL像這樣:
float some_function(){
float percentage = 100;
std::cout << "percentage = " << percentage << std::endl;
//more code
return 0;
}
這給出了輸出:
percentage = 1000x6580a8
添加更多endl的只是打印出更多0x6580a8的。
這可能是什麼原因造成的?這是在Ubuntu 10.04上使用gcc 4.4.3編譯的。
怪異的shiznit。 :) – 2010-07-14 15:18:33
您的代碼是逐字或轉述的? '0x6580a8'可能是'std :: endl'的地址。 – fredoverflow 2010-07-14 15:22:27
@Fred,代碼是逐字。我將如何檢查這是否是std :: endl的地址? – shuttle87 2010-07-14 15:25:58