用cin(C++)读取字符
Read character with cin (C++)
我试图在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"未显示。
如果我尝试输入"2米",它会起作用。(The char is: mProgram ended with exit code: 0)
有人能帮忙吗?
问题1:当您将"2d"发送到cin时,您只将输入值分配给一个变量。如果要分配两个变量,请在("2d")之间添加空格,或分别分配:键入2,按enter键,键入d,再按enter键。
问题2:cin不进行类型检查。当您将无效类型分配给double或int时,您将得到不希望的行为。
如果您从代码中删除字符输入,并且只将输入分配给双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:result-->d=0
对于输入2m:结果-->d=2
对于输入2o:result-->d=2
对于输入2a:result-->d=0
对于输入2p:result-->d=0
对于输入2q:result-->d=2
正如您所看到的,有时候cin不知道如何处理输入,只是完全忽略它。有时cin可以识别输入的数字部分并将其存储在变量d中,如果在d之后添加cin>>c,它将把剩余部分放在char c中。
更多解释和代码示例:使用cin获取用户输入
使用GCC编译代码,程序将按预期工作。
cin>>d>>c;//d(double)与c(char)分离
相关文章:
- 如何在 C++ 中从文件中读取字符数组(带有一些空格)
- 从矢量C++读取字符时出现问题
- 从格式化输入操作中获取读取字符数
- 使用 cin.get 读取字符数组
- 按下回车键时,如何使数组停止读取字符
- C++:读取字符是不正确的
- 如何从输入文件中读取字符并将其存储到向量中?
- 线程函数无法从堆上分配的缓冲区中读取字符
- 使用 cin.get() 读取字符
- C++:使用 fgets() 读取字符输入时出错
- C++ 从文件中读取字符,计算每个字符并进行排序
- C ++ ifstream 无法读取字符串,并且在读取字符时出错
- 逐字读取字符数组,无需字符串函数
- 是否有任何方法可以在用户输入文本时读取字符
- 从字符串中读取字符时出错
- 如何按字符从文件到2D数组读取字符
- 重载>>运算符和读取字符
- 从堆栈中读取字符后,如何修复不正确的文件输出
- 如何从文件中读取“”字符
- 读取字符 * 始终具有相同的地址