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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Japanese
9 / 9 / 1
Регистрация: 14.11.2010
Сообщений: 128
#1

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

08.12.2010, 10:08. Просмотров 636. Ответов 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
#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"?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.12.2010, 10:08
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Оператор if должен сравнить введеные символы с установленным заранее значением... (C++):

Левый операнд должен быть левосторонним значением - C++
Пролистал форум, не смог найти ответа. #include &lt;stdio.h&gt; #include &lt;math.h&gt; #include &lt;iostream&gt; int main () { double...

Левый операнд должен быть левосторонним значением - C++
выдает ошибку : 1&gt;c:\users\dandel1onka\documents\visual studio...

левый операнд-должен быть левосторонним значением - C++
Вычислить и вывести на экран в виде таблицы значения функции F на интервале от Xнач. до Xкон. с шагом dX. #include &lt;cstdio&gt; #include...

Сравнить переменную со значением numericupdown - C++
Здравствуйте, мне нужно чтобы, когда пользователь в nud вводил число 7 выполнялось действие. А если любое другое число, то программа...

Ошибка: Левый операнд должен быть левосторонним значением - C++
Здравствуйте, не могу понять, в чем суть ошибки. Ругается на это и подобные выражения best.fio.f=mas.fio.f; Слышал, можно избежать...

Ошибка: Левый операнд должен быть левосторонним значением - C++
#include &quot;stdafx.h&quot; #include &lt;windows.h&gt; #include &lt;iostream&gt; #include &lt;clocale&gt; #include &lt;stdlib.h&gt; #include &lt;cstring&gt; #include...

6
Barok
7 / 7 / 0
Регистрация: 07.12.2010
Сообщений: 49
08.12.2010, 10:27 #2
используй Yes и No не как переменные, а как строку, возьми в ковычки "Yes", "No"

Добавлено через 3 минуты
P.S. и вместо getch(); лучше использовать std::cin.get();
getch(); не все компиляторы понимают.
0
Japanese
9 / 9 / 1
Регистрация: 14.11.2010
Сообщений: 128
08.12.2010, 10:33  [ТС] #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(); тоже никакого толку
0
Barok
7 / 7 / 0
Регистрация: 07.12.2010
Сообщений: 49
08.12.2010, 10:42 #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;
        }
секундочку, не коректно работает
0
Nameless One
Эксперт С++
5774 / 3424 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
08.12.2010, 10:42 #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;
}
1
Japanese
9 / 9 / 1
Регистрация: 14.11.2010
Сообщений: 128
09.12.2010, 18:57  [ТС] #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;
}
все прекрасно работает
0
Nameless One
Эксперт С++
5774 / 3424 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
10.12.2010, 04:01 #7
Цитата Сообщение от Japanese Посмотреть сообщение
Не знаю конечно правильно ли я сделал или не совсем, но у меня вышло следующее:
Не совсем, так как условие if("Да" || "Нет") будет всегда давать true, следовательно, оно бесполезно, следовательно, от него нужно избавиться
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.12.2010, 04:01
Привет! Вот еще темы с ответами:

Ошибка: Левый операнд должен быть левосторонним значением - C++
#include&lt;iostream&gt; using namespace std; int main(int nNumberofArgs, char* pzArgs) { int Number ; cout &lt;&lt; &quot;Enter a number from 1...

Ошибка: Левый операнд должен быть левосторонним значением - C++
int MenuMain() { int count = 3; char ** list = new char * ; list = new char = Rus(&quot;Провести распознавание&quot;); list = new...

Ошибка: левый операнд должен быть левосторонним значением - C++
Ребят, проблема такая: редактирую код быстрой сортировки, выдает ошибку (см. выше), подскажите пожалуйста в чем может быть проблема int...

Ошибка: левый операнд должен быть левосторонним значением - C++
#include &quot;stdafx.h&quot; #include &quot;Tic Tac Toe.h&quot; #define MAX_LOADSTRING 100 // Глобальные переменные: HINSTANCE hInst; //...


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

Или воспользуйтесь поиском по форуму:
7
Yandex
Объявления
10.12.2010, 04:01
Ответ Создать тему
Опции темы

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