cin.get和char错误消息

时间:2013-04-26 03:46:07

标签: c++ visual-c++ char cin

以下是我的代码。我希望我的程序接受输入单词的第一个字符并保存为number1并将第二个字符作为number2。但是我收到一条错误消息。 “从积分类型转换为指针类型需要reinterpret_cast,C风格的强制转换或函数式转换”

char number1;
char number2;
int all;

cout << "Enter romans to change to numbers. " << endl;
n1 = cin.get();
n2 = cin.get();

1 个答案:

答案 0 :(得分:1)

使用您显示的代码没有任何错误(语法上),如以下完全自包含的示例所示:

#include <iostream>

int main(){
    char n1;
    char n2;
    int total;

    std::cout << "Enter roman numerals to change to numbers." << std::endl;
    n1 = std::cin.get();
    n2 = std::cin.get();
    return 0;
}

这样编译并运行正常,因此您的问题必须在其他地方。

您需要更好地记录编译器提供给您的错误消息,特别是行号。然后检查该点或其周围的文件(并告诉我们您是否无法弄明白)。

如果您不小心将n1n2变量声明为char *而非char,那么我希望看到这种错误消息。在这种情况下gcc给了我类似于你陈述的内容:

qq.cpp: In function 'int main()':
qq.cpp:9: error: invalid conversion from 'int' to 'char*'
qq.cpp:10: error: invalid conversion from 'int' to 'char*'