我尝试使这个代码适用于XCode 6.01。它是一个小程序,需要一些double和一个char然后打印char。
#include <iostream>
using namespace std;
int main ()
{
char c=' ';
double d = 0;
cin >> d >> c;
cout << "The char is: "<< c;
return 0;
}
输入“2d”的结果是:"The char is: Program ended with exit code: 0"
如您所见,“d”未显示。
如果我尝试输入“2m”,它就可以了。 (The char is: mProgram ended with exit code: 0)
有人可以帮忙吗?
答案 0 :(得分:0)
问题1:当您向cin发送“2d”时,您只是将输入值分配给一个变量。如果要分配两个变量,请在两者之间添加空格(“2 d”),或单独指定它们:键入2,按Enter键,键入d,再次按Enter键。
问题2:cin不进行类型检查。将无效类型分配给double或int时,将产生不良行为。
如果从代码中删除char输入,只将输入分配给double d:
int main ()
{
char c=' ';
double d = 0;
// cin >> d >> c;
cin >> d
// cout << "The char is: "<< c;
cout << "d = " << d << endl;
return 0;
}
对于输入2d:结果 - &gt; d = 0
对于输入2m:结果 - &gt; d = 2
对于输入2o:结果 - &gt; d = 2
对于输入2a:结果 - &gt; d = 0
对于输入2p:结果 - &gt; d = 0
对于输入2q:结果 - &gt; d = 2
正如您所看到的,有时cin不知道如何处理输入并完全忽略它。 有时cin可以识别输入的数字部分并将其存储在变量d中,如果添加cin&gt;&gt;在d之后,它将把剩下的部分放在char c中。
更多解释和代码示例:Using cin to get user input
答案 1 :(得分:0)
使用GCC编译代码,程序将按预期工作。
cin&gt;&gt; d&gt;&gt; C; // d(double)与c(char)
分开