C++入门两天遇类型赋值错误,求简单对话程序实现方案
解决你的C++对话程序类型不匹配问题
刚接触C两天就动手写程序,这点值得称赞!咱们先拆解你遇到的错误:A value of type "const char*" cannot be assigned to an entity of type "int",这个错误的核心是类型不匹配——你试图把一个字符串("Hello"是C风格字符串,类型是const char*)赋值给整数类型变量,强类型的C不允许这种操作,而且不管你把整数类型换成char、long long这些,本质还是数字类型,根本没法存储字符串,所以改类型肯定解决不了问题。
正确的实现思路和代码
要实现输入"Hello"就输出"Hello"的功能,你需要用字符串类型来存储用户的输入,C++里最易用的就是std::string。下面是完整的可运行代码:
#include <iostream> #include <string> // 必须包含这个头文件才能使用std::string int main() { std::string user_input; // 定义字符串变量存储用户输入 std::cout << "请输入内容:"; std::cin >> user_input; // 读取用户输入的字符串 // 判断输入是否为"Hello" if (user_input == "Hello") { std::cout << "Hello" << std::endl; } return 0; }
为什么之前的尝试没用?
你之前把变量换成int、char、long long这些类型,它们都是用来存储数值的(比如整数、单个字符的ASCII值),而"Hello"是由多个字符组成的字符串,完全不是一个数值,自然没法赋值给这些类型的变量。只有字符串类型(比如std::string或者C风格的char[])才能存储这类字符序列。
额外小提示
如果之后想读取包含空格的输入(比如"Hello World"),就不能用std::cin >> user_input了,得用getline(std::cin, user_input),不过要注意如果之前用了cin读取过内容,需要先处理换行符的问题,不过对于你的简单需求,std::cin >> user_input就足够了。
内容的提问来源于stack exchange,提问作者Harut Soghomonyan
相关产品推荐
相关产品推荐

