【发布时间】:2023-03-15 11:35:01
【问题描述】:
我正在开发一个关于 Dev-C++ 的小项目。我正在尝试制作一个机器人来问你一些问题,但我不能使用带有字符串的 switch 语句。每次我尝试这样做时都会显示错误!我还尝试将 srings 更改为普通的 int 变量,但是当我回答第一个问题后代码立即运行时!有谁知道如何解决这些情况?
这是我的代码:
// #include "stdafx";
#include <iostream>
#include <string>
#include <stdio.h>
#include <string.h>
using namespace std;
int main()
{
string comida;
string nome;
string idade;
string pais;
cout << "Ola, o meu nome e Aleksandar. Qual e o teu nome?" << endl; //Ask for nome
cin >> nome; //Recieve variable nome
cout << "Es de que pais, " << nome << "?" << endl; //Ask for pais
cin >> pais; //Receive pais
cout << pais << " e um pais bonito. " << "Eu sou de Portugal!" << endl;
cout << "Quantos anos tens " << nome << "?" << endl; //Ask for idade
cin >> idade; //Receive variable idade
switch (idade) {
case 21:
cout << "O meu irmao tambem tem 21 anos!" << endl;
break;
}
cout << "Eu tenho 28" << endl;
cout << "Qual e a tua comida preferida?" << endl; //Ask for comida
cin >> comida; //Receive variable comida
cout << "Tambem gosto muito de " << comida << ". Mas gosto mesmo e de Vatruchka!" << endl;
cout << "Xau " << nome << "!" << endl;
}
【问题讨论】:
-
为什么要使用一个简单的
if的开关呢? -
简短回答:你不能。 C++ 开关仅适用于整数 (int, char, ecc.) 常量。您可能需要考虑
std::map<string, std::function<void()>> -
为什么你的缩进到处都是?
-
投了反对票,因为人们应该先搜索(这个问题已经经常被回答)并且代码包含很多噪音——非英语的东西,而且通常有很多没有太多可做的代码做这个问题。
标签: c++