// francais projecct test1.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
int main()
{
char userAnswer[10];
char answer[] = { "Vous êtes" };
wcout << "s'il vous plaat ecrire conjugation pour Vous etre: ";
cin>>userAnswer;
if (strcmp(userAnswer, answer) == 0)
cout << endl << "correct"<<endl<<endl;
else
cout << endl << "wrong answer"<<endl<<endl;
system("pause");
return 0;
}
带重音符号的字符不能被编译器识别,如果需要unicode,我也不知道如何获取unicode字符的输入。
答案 0 :(得分:2)
std::getline
是为std::basic_string
定义的(特殊情况包括std::string
,std::wstring
)。普通字符数组不属于该类别。
参考: http://www.cplusplus.com/reference/string/string/getline/
尽管我强烈建议您使用std::string
/ std::wstring
,但是,如果要使代码正常工作,则必须使用cin.getline
。
您可以在此参考示例2: https://www.programiz.com/cpp-programming/library-function/iostream/wcin
第二,userAnswer == answer
是错误的,因为它将比较两个指针,而不是它们的实际内容。
为此,您应该使用strcmp()
。
参考:http://www.cplusplus.com/reference/cstring/strcmp/
类似这样的东西:
#include <iostream>
#include <string>
#include <cstring>
using namespace std;
int main()
{
char userAnswer[10];
char answer[] = "Vous etes";
wcout <<"s'il vous plait ecrire conjugation pour Vous etre: ";
cin.getline(userAnswer, 10);
if (!strcmp(userAnswer, answer))
{
wcout <<endl<< "correct";
}
else
{
wcout <<endl<< "wrong answer";
}
return 0;
}