Форум С++

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

Автор: cheops   (16.12.2011 в 02:22)
Погодите, вы используете getch(), который по определению читает только один символ, сколько бы пользователь символ не ввел и этот один символ сравниваете со строкой 'exit' (уже 4 символа, если не считать признак окончания строки \0). Тем более, что тут следует использовать двойные кавычки, а базовая строка char так просто не сравнивается - нужно либо Это не правильно, тем более в C/C++ базовые типы так просто не сравниваются. Нужно либо как вы далее сравнивать с одним символом, либо читать строку при помощи getline и сравнивать строки при помощи функции strcmp() или аналогов. Только для более мощных строк (а их несколько видов и вы сами можете реализовать свой вариант строк, на базе char * или просто участков памяти) операторы сравнения перегружены, тут они не перегружены, так как массивы в C/C++ это по сути указатели, которые ссылаются на область памяти, но "не знают" как далеко она простирается - выделить достаточно памяти и следить за её границей, возвратом в систему - это все на совести программиста.


Ваше имя:

Пароль:

Цитировать

Используйте тэги для выделения текста:
Код: [code][/code]
Жирный: [b][/b]
Наклонный: [i][/i]
URL: [url][/url]

Сообщение:

Прикрепить: