【发布时间】:2014-04-06 11:13:04
【问题描述】:
由于某种原因,If/else 语句在 C++ 中对我来说无法正常工作
问题是当变量等于右边(höger)时,它不会输出 If 语句,而是会继续执行 else 语句。如果我将字母 'ö' 替换为 say 'o' 所以它变成了 'hoger',那么 if 语句将起作用。所以每当我写“höger”这个词时,它不会进入 if 语句,而是会进入 else 语句。但是,如果我使变量等于“hoger”,然后我写“hoger”,它将起作用。如果 If 语句识别它,我怎样才能写出 'höger' 呢?好像瑞典字母不起作用。
我的代码如下所示:
#include <iostream>
#include <string>
using namespace std;
int main() {
setlocale(LC_ALL,"");
string test; // Define variabel
cout << " Höger elle vänster"<<endl; // Right or left
cin >> test;
if(test == "höger") { // If right, then output this.
cout <<"Du valde höger"<<endl;
}
else if(test == "vänster") { // If left, then output this
cout <<"Du valde vänster"<<endl;
} else {
// Do this
}
}
【问题讨论】:
-
源文件的编码是什么?你的终端是什么编码的?
-
记住比较运算符是区分大小写的。
-
你得到什么尝试 std::cout
-
哦,你的逻辑有缺陷。如果输入不是
"höger",则不会自动表示它是"vänster"。如果用户输入其他内容怎么办? -
这只是最有可能测试奇怪“o”的测试......
标签: c++ if-statement statements setlocale