以下程序无法编译。
#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 将始终产生所需的结果。
答案 0 :(得分:4)
所以你希望能够输入例如97
和输出获得'a'
?然后读入实际的int
并将int
变量强制转换为输出中的字符。即几乎与你现在所做的相反:
int c;
std::cin >> c;
std::cout << static_cast<char>(c);
如果您想确保输入是有效字符,请使用例如std::isalpha
或其中一个character classification functions。