Форум программистов, компьютерный форум CyberForum.ru

Оператор if должен сравнить введеные символы с установленным заранее значением... - C++

Восстановить пароль Регистрация
 
Japanese
 Аватар для Japanese
9 / 9 / 1
Регистрация: 14.11.2010
Сообщений: 120
08.12.2010, 10:08     Оператор if должен сравнить введеные символы с установленным заранее значением... #1
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
#include "stdafx.h"
#include <conio.h>
#include <iostream>
using namespace std;
 
 
int main()
{
    char answer[80];
    char answerTwo[80];
    cout << "Здравствуйте, как Ваше имя?";
    cin >> answer;
    cout << "Ваше имя " << answer << ", это так?";
    cin >> answerTwo;
    if (answerTwo==Yes)
    {
        cout << "Приятно  с Вами познакомиться " << answer;
    }
    if (answerTwo==No)
    {
        cout << "А как Вас тогда зовут?";
        cin >> answer;
        cout << "Приятно  с вами познакомиться " << answer;
    }
    
    getch();
    return 0;
}
При компиляции пишет следующее:
Yes: необъявленный идентификатор
No: необъявленный идентификатор

Возникает вопрос: как заставить "if" "смотреть" на "Yes" и "No" не как на необъявленные переменные, а как на значения которые должны сравниваться с "answerTwo"?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.12.2010, 10:08     Оператор if должен сравнить введеные символы с установленным заранее значением...
Посмотрите здесь:

Решите програмку С++ на оператор процедуры/функции)))заранее благодарю)))оч надо C++
C++ Как работает оператор char *! Спасибо заранее!
Ошибка при ветвлении: левый операнд должен быть левосторонним значением C++
C++ error C2106: =: левый операнд должен быть левосторонним значением
Ошибка: левый операнд должен быть левосторонним значением C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Barok
7 / 7 / 0
Регистрация: 07.12.2010
Сообщений: 49
08.12.2010, 10:27     Оператор if должен сравнить введеные символы с установленным заранее значением... #2
используй Yes и No не как переменные, а как строку, возьми в ковычки "Yes", "No"

Добавлено через 3 минуты
P.S. и вместо getch(); лучше использовать std::cin.get();
getch(); не все компиляторы понимают.
Japanese
 Аватар для Japanese
9 / 9 / 1
Регистрация: 14.11.2010
Сообщений: 120
08.12.2010, 10:33  [ТС]     Оператор if должен сравнить введеные символы с установленным заранее значением... #3
Цитата Сообщение от Barok Посмотреть сообщение
используй Yes и No не как переменные, а как строку, возьми в ковычки "Yes", "No"
C++
1
2
3
4
5
6
7
8
9
10
if (answerTwo=="Yes")
    {
        cout << "Приятно  с вами познакомиться " << answer;
    }
    if (answerTwo=="No")
    {
        cout << "А как тогда вас зовут?\n";
        cin >> answer;
        cout << "Приятно  с вами познакомиться " << answer;
    }
Программа стала запускаться, но когда я ввожу "Yes" либо "No" и жму Enter сообщения почему-то не выводятся. Вообще ничего не выводится. В чем может быть проблема?

Цитата Сообщение от Barok Посмотреть сообщение
P.S. и вместо getch(); лучше использовать std::cin.get();
getch(); не все компиляторы понимают.
У меня компилятор VS 2008, ввел std::cin.get(); компилятор ничего не понял и перетал тормозить прогу.
Так же вводил cin.get(); тоже никакого толку
Barok
7 / 7 / 0
Регистрация: 07.12.2010
Сообщений: 49
08.12.2010, 10:42     Оператор if должен сравнить введеные символы с установленным заранее значением... #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
int main()
{
        char answer[80];
        char answerTwo[80];
        cout << "Здравствуйте, как Ваше имя?";
        cin >> answer;
        cout << "Ваше имя " << answer << ", это так?";
        cin >> answerTwo;
        if (answerTwo=="Yes")
 
                cout << "Приятно  с Вами познакомиться " << answer;
 
        else
        {
                cout << "А как Вас тогда зовут?";
                cin >> answer;
                cout << "Приятно  с вами познакомиться " << answer;
        }
 
        getch();
        return 0;
        }
секундочку, не коректно работает
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
08.12.2010, 10:42     Оператор if должен сравнить введеные символы с установленным заранее значением... #5
Цитата Сообщение от Japanese Посмотреть сообщение
Программа стала запускаться, но когда я ввожу "Yes" либо "No" и жму Enter сообщения почему-то не выводятся. Вообще ничего не выводится. В чем может быть проблема?
В том, что строки С сравниваются не с помощью оперетора '==', а с помощью функции strcmp (которая возвращает ноль, если две строки равны). То, что написано выше - неправильно
Вот как-то так:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
 
int main()
{
    const size_t size = 80;
    char name[size], ans[size];
    printf("Здарвствуйте, как Ваше имя? ");
    scanf("%s", name);
    printf("Ваше имя - %s? ", name);
    scanf("%s", ans);
    if(!strcmp(ans, "Yes"))
        printf("Приятно с Вами познакомиться, %s!\n", name);
    else if(!strcmp(ans, "No"))
    {
        printf("А как Вас тогда зовут? ");
        scanf("%s", name);
        printf("Приятно с Вами познакомиться, %s!\n", name);
    }
    return 0;
}
Japanese
 Аватар для Japanese
9 / 9 / 1
Регистрация: 14.11.2010
Сообщений: 120
09.12.2010, 18:57  [ТС]     Оператор if должен сравнить введеные символы с установленным заранее значением... #6
Не знаю конечно правильно ли я сделал или не совсем, но у меня вышло следующее:

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 "stdafx.h"
#include <conio.h>
#include <iostream>
using namespace std;
 
 
int main()
{
        char answer[80];
        char answerTwo[80];
        cout << "Здравствуйте, как Ваше имя?\n";
        cin >> answer;
        cout << "Ваше имя " << answer << ", это так?\n";
        cin >> answerTwo;
 
    if ("Да" || "Нет")
    {
        if (!strcmp(answerTwo, "Да"))
        {
                      cout << "Приятно  с Вами познакомиться " << answer;
        }
        else
        if (!strcmp(answerTwo, "Нет"))
        {
                    cout << "А как Вас тогда зовут?\n";
                    cin >> answer;
                    cout << "Приятно  с вами познакомиться " << answer;
        }
    }
        
        getch();
        return 0;
}
все прекрасно работает
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.12.2010, 04:01     Оператор if должен сравнить введеные символы с установленным заранее значением...
Еще ссылки по теме:

C++ Левый операнд должен быть левосторонним значением
C++ Сравнить 2-й и 4-й символы
C++ Левый операнд должен быть левосторонним значением

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

Или воспользуйтесь поиском по форуму:
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
10.12.2010, 04:01     Оператор if должен сравнить введеные символы с установленным заранее значением... #7
Цитата Сообщение от Japanese Посмотреть сообщение
Не знаю конечно правильно ли я сделал или не совсем, но у меня вышло следующее:
Не совсем, так как условие if("Да" || "Нет") будет всегда давать true, следовательно, оно бесполезно, следовательно, от него нужно избавиться
Yandex
Объявления
10.12.2010, 04:01     Оператор if должен сравнить введеные символы с установленным заранее значением...
Ответ Создать тему
Опции темы

Текущее время: 23:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru