Не могу заставить французские символы работать в C ++ - PullRequest
0 голосов
/ 15 февраля 2019
// 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.

1 Ответ

0 голосов
/ 15 февраля 2019

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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...