Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Oleg Pridarun
2 / 2 / 1
Регистрация: 16.06.2016
Сообщений: 91
#1

Сравнение строк - C++

24.06.2017, 14:01. Просмотров 237. Ответов 9

Написал элементарную функцию, проверяющую введённый пользователем текст. Проблема в том, что он в любом случае выдаёт "Ввод не удался. Попробуйте снова". (Циклится функция в главном файле. использование массивов char в качестве строк и cin.getline тоже не катит)

Main
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iostream>
#include <conio.h>
#include <string>
#include "StartGame.h"
 
using namespace std;
 
int main()
{
    setlocale(0,"rus");
 
    bool startGameCheckCycle;
    
    cout << "Что бы начать игру напишите <<Начать>>" << endl;
 
    do
    {
        if (StartGame() == true)
        {
            startGameCheckCycle = false;
        }
        else
        {
            startGameCheckCycle = true;
        }
 
    } while (startGameCheckCycle);
 
    _getch();
    return 0;
}
StartGame.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#pragma once
#include <iostream>
#include <string>
 
using namespace std;
 
bool StartGame()
{
    string startGameCheckString;
 
        cin >> startGameCheckString;
        if (startGameCheckString == "Начать")
        {
            return true;
        }
        else
        {
            cout << endl << endl << "Ввод не удался. Попробуйте снова." << endl << endl;
            return false;
        }
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.06.2017, 14:01
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Сравнение строк (C++):

сравнение строк
Нужно сравнить строки типа стринг, без использования стандартных функций НЕ...

Сравнение строк
нужно сравнить две строки на сходство, но они не обязательно должны быть...

Сравнение строк
Помогите написать программу,на С++, которая сравнивает две строки игнорируя...

Сравнение строк
Не прибегая к функциям сравнения строк, создайте программу, которая запрашивает...

Сравнение строк
#include &lt;iostream&gt; #include &lt;cstdlib&gt; #include &lt;cstdio&gt; #include &lt;cstring&gt;...

Сравнение строк
Есть два файла,достаю из первого - 1-ю строку и из 2 - 1-ю строку Они имеют...

9
nd2
2828 / 2398 / 1052
Регистрация: 29.01.2016
Сообщений: 8,022
24.06.2017, 14:05 #2
Лучший ответ Сообщение было отмечено Oleg Pridarun как решение

Решение

Цитата Сообщение от Oleg Pridarun Посмотреть сообщение
C++
1
setlocale(0,"rus");
C++
1
2
3
4
5
6
7
8
#include <windows.h>
 
int main()
{
  SetConsoleCP(1251);
  SetConsoleOutputCP(1251);
  ...
}
В свойствах консоли выбрать шрифт: Lucida Console.
1
hoggy
Заблокирован
24.06.2017, 14:05 #3
Цитата Сообщение от Oleg Pridarun Посмотреть сообщение
Проблема в том, что он в любом случае выдаёт "Ввод не удался. Попробуйте снова".
попробуйте ввести в консольку "Начать"
0
Oleg Pridarun
2 / 2 / 1
Регистрация: 16.06.2016
Сообщений: 91
24.06.2017, 14:07  [ТС] #4
Ничего не изменилось
0
nd2
2828 / 2398 / 1052
Регистрация: 29.01.2016
Сообщений: 8,022
24.06.2017, 14:09 #5
Цитата Сообщение от Oleg Pridarun Посмотреть сообщение
Ничего не изменилось
После чего?
0
hoggy
Заблокирован
24.06.2017, 14:12 #6

Не по теме:

Цитата Сообщение от Oleg Pridarun Посмотреть сообщение
Ничего не изменилось
- Митрич! машинка заглохла. не едит нефигаааа!.
- окна открывал-закрывал? а двери? бардачок от окурков прочистил? ну тогда не знаю....



"ничего не изменилось" - это у баб.
у баб вообще или "всё" или "ничего".

у программистов:
четкое описание всей последовательности действий,
с прилагаемой выдержкой кода,
который представляет собой необходимый минимум для иллюстрации проблемы.
что бы коллеги смогли по такому формальному описанию
воспроизвести/понять/помочь устранить проблему.

с вашим "ничего не изменилось" вам на форум телепатов.
0
Oleg Pridarun
2 / 2 / 1
Регистрация: 16.06.2016
Сообщений: 91
24.06.2017, 14:23  [ТС] #7
Цитата Сообщение от hoggy Посмотреть сообщение
у программистов:
четкое описание всей последовательности действий,
с прилагаемой выдержкой кода
Ну, тут нечего было описывать, программа не изменила ход работы, всё работает так же: любая введённая строка воспринимается, как не правильная

Добавлено через 1 минуту
Цитата Сообщение от nd2 Посмотреть сообщение
После чего?
После вставки
C++
1
2
SetConsoleCP(1251);
  SetConsoleOutputCP(1251);
вместо setlocale и изменения шрифта консоли

Добавлено через 3 минуты
Цитата Сообщение от hoggy Посмотреть сообщение
попробуйте ввести в консольку "Начать"
Воспринимает как неправильную строку
0
hoggy
Заблокирован
24.06.2017, 14:24 #8
Цитата Сообщение от Oleg Pridarun Посмотреть сообщение
Ну, тут нечего было описывать, программа не изменила ход работы, всё работает так же: любая введённая строка воспринимается, как не правильная
сейчас, вот только связь с астралом починят,
и сразу залезем к вам напрямки в моск.

что бы понять чего и как вы там вводите.
Цитата Сообщение от Oleg Pridarun Посмотреть сообщение
любая введённая строка воспринимается, как не правильная
http://rextester.com/LPVN18535

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <iostream>
#include <string>
using namespace std;
 
bool StartGame()
{
    string startGameCheckString;
 
    cin >> startGameCheckString;
    if (startGameCheckString == "Начать")
        return true;
 
    cout << endl << endl << "Ввод не удался. Попробуйте снова." << endl << endl;
    return false;
}
 
int main()
{
    setlocale(0,"rus");
 
    bool startGameCheckCycle = false;
    
    cout << "Что бы начать игру напишите <<Начать>>" << endl;
 
    do
    {
        if (StartGame() == true)
            startGameCheckCycle = false;
        else
            startGameCheckCycle = true;
    } while (startGameCheckCycle);
    cout <<"игра началась\n";
}
0
nd2
2828 / 2398 / 1052
Регистрация: 29.01.2016
Сообщений: 8,022
24.06.2017, 14:24 #9
Цитата Сообщение от Oleg Pridarun Посмотреть сообщение
После вставки
Цитата Сообщение от Oleg Pridarun Посмотреть сообщение
и изменения шрифта консоли
Это работает в 99% случаев. Скрин работы покажи, скрин настройки шрифтов в консоли. Среда какая?
0
Oleg Pridarun
2 / 2 / 1
Регистрация: 16.06.2016
Сообщений: 91
24.06.2017, 14:26  [ТС] #10
Цитата Сообщение от nd2 Посмотреть сообщение
1
2
3
4
5
6
7
8
#include <windows.h>
int main()
{
* SetConsoleCP(1251);
* SetConsoleOutputCP(1251);
* ...
}
В свойствах консоли выбрать шрифт: Lucida Console.
Всё, проблему решил. Спасибо за помощь
0
24.06.2017, 14:26
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.06.2017, 14:26
Привет! Вот еще темы с решениями:

Сравнение строк
Здравствуйте. Есть 2 файла содержимое которых нужно сравнить и вывести на экран...

Сравнение строк
Всем привет, имеется строка записаная в масив, как мне сравнить первую букву...

Сравнение строк
Тупо и банально нужно сравнить строки средствами с++. Гуглил, но не нашел...

Сравнение строк
Доброго времени суток! Имеется задачка: для двух заданных строк символов...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru