我是c +的新手,我正在编写与此问题无关的caesar密码程序,但我无法弄清楚为什么我的代码出错了。
char alph[] = "ABCDEFGHIJKLMANOPQRSTUVWXYZ";
string key;
cout << "Enter your key: \n";
getline(cin, key);
int numKey;
for(int j = 0; j<= 26;j++ ){
if (alph[j] == key){
numKey = j;
}
}
在我的main函数中还有更多不必要的东西,但是我收到if(alph [j] == k)语句错误:错误:无效的操作数到二进制表达式('int'和'string'(又名'basic_string,allocator&gt;'))“如果有人能告诉我我做错了什么,我将不胜感激。提前谢谢。
答案 0 :(得分:1)
您将string
与单char
进行比较。
如果您只想阅读单个字符,请声明char c
并使用cin >> c
答案 1 :(得分:1)
除了循环溢出,你试图比较一个字符和一个字符串,这是你的问题。 关键应该只是一个角色?如果是这样,那就把它变成一个字母,它会更好用。