cin不能与typecaset一起使用

时间:2016-09-12 12:04:59

标签: c++ input type-conversion cin

以下程序无法编译。

#include <iostream>
#include <cstdio>
using namespace std;

int main(){
    char c;
    cin >> (int)c;       // stat 1
    //scanf("%d", &c);   //stat 2; this when complied gives warning
    cout << c << endl;
}

Q1。如何使用cin接受字符的ASCII值。我想用char变量来做。

Q2。如果确保用户输入的值位于字符范围内, stat 2 始终产生所需的结果。

1 个答案:

答案 0 :(得分:4)

所以你希望能够输入例如97和输出获得'a'?然后读入实际的int并将int变量强制转换为输出中的字符。即几乎与你现在所做的相反:

int c;
std::cin >> c;
std::cout << static_cast<char>(c);

如果您想确保输入是有效字符,请使用例如std::isalpha或其中一个character classification functions