Почему не прерывается цикл while?

285
09 января 2017, 21:50

Не могу понять что не так, почему не срабатывает сравнение в цикле while?

#include <iostream>
int main()
{
    using namespace std;
    char word[20];
    int count = 0;
    cout << "<Enter separate letter 'q' in the end of text>\n";
    cout << "Enter the text:\n";
    cin >> word;
    while (word != "q")
    {
        count++;
        cin >> word;
    }
    cout << count << " words in the text.\n";
    system("pause");
    return 0;
}

Пример ввода: one two three q

Должен быть вывод: 3 words in the text.

Answer 1

Напишите, например,

while (strcmp(word,"q"))

(сравнение строк в стиле С); или

while (word != string("q"))

Или сделайте word не char[], а string - для использования оператора == для string.

А иначе вы сравниваете, по одному ли адресу находятся строковый литерал "q" и массив word. Понятно, что по разным...

READ ALSO
Преобразование BMP в JPEG в памяти на C++

Преобразование BMP в JPEG в памяти на C++

Есть переменная LPBYTE Buffer, которая указывает на полноценный BMP файл, полученный в результате работы веб-камеры и кода формирования этого файла...

298
visual studio в virtual box

visual studio в virtual box

Здравствуйте, у меня такая проблемаПоставил на виртуалке windows7, в виртуалке задал настройку com1 порт ассоциировать как файл 1

297
global operator функция

global operator функция

Как тут глобал оператор работает с данными класса? Какие свойство у него, и чем отличается от friend

294
Антикейлогер и DLL

Антикейлогер и DLL

Написал программу, которая должна выполнять функцию антикейлогера(отлавливать хуки в системе через функцию в DLL)Но почему-то при подключении...

316