gpt4 book ai didi

c++ - 尝试将匹配的 char 变量打印到 cout

转载 作者:行者123 更新时间:2023-11-30 02:50:08 25 4
gpt4 key购买 nike

所以我正在尝试制作一台可口可乐机来打印出用户选择饮用的饮料。基本上,我不想让用户输入像“cocacola”这样的单词作为字符串,然后我将其转换为 char 类型并在 if 语句中使用它。

但是当我运行我的代码时它不起作用。

#include <iostream>
#include <string>
#include <sstream>
using namespace std ;

int main(){

cout << "You approach the Cola Machine..." ;
cout <<"these are the different drinks it offers." << endl << endl ;
cout <<"CocaCola\nSquirt\nSprite\nWater\nHorchata" << endl << endl ;
cout <<"Type in what you would like to drink: " ;

string choice ;
char sum[300] ;


cin >> choice ;
strncpy(sum, choice.c_str(), sizeof(sum));
sum[sizeof(sum) - 1] = 0;

if(choice == choice) {
if((sum == "CocaCola" || sum == "cocacola")){cout << "you've chosen CocaCola " ;}
}
return 0 ;

编辑:我不小心用了 switch 语句而不是 (if)。

最佳答案

它不起作用的原因是因为 == 运算符没有重载用于 char 数组。你想使用 strcmp而不是 == 运算符(实际上你应该使用字符串,因为无论如何这是 c++...)。

#include <cstring>

...

if(strcmp(sum, "CocaCola") == 0 || strcmp(sum, "cocacola") == 0)
{
cout << "you've chosen CocaCola " ;
}

如果你想用严格的 c++ 来做到这一点。然后删除 char 数组 sum 并改为执行

getline(cin, choice);

if( choice == "CocaCola" || choice == "cocacola" )
{
cout << "you've chosen CocaCola " ;
}

关于c++ - 尝试将匹配的 char 变量打印到 cout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20674954/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com