Getch c не работает visual studio
Как не крутил - все выдает ошибку: не может найти - iostream.h, но затем в итоге узнал, что если
написать такую строчку: std::cout << "Введите целое число\n"; - то все заработало, правда кодировка не та.
Начал условершенствовать программу и вспомнил, что есть функция задержки: getch(); а то сами понимаете окно с надписью появляется и исчезает, но когда вставил функцию: getch(); - но пишет что неизвестна. Вставил тогда: std::getch(); - как для ввода по примеру - и опять не работает - я вообще не понимаю почему?
Будьте добры подскахите пожалуйста как сделать чтоб заработало. Я и не понял с функцией std::cout - почему писать надо так?
еще: а вам действительно нужна настолько древняя версия Visual Studio ?
Вместо нее Вы можете использовать:
std::cin.get()
или
std::cin.getline().
А еще можно написать вначале программы
using namespace std
Все получилось! Вы все правильно поняли и ответили на мой вопрос - как я хотел.
Еще раз Вам большое спасибо за отклик и помощь. У меня в связи с этим к Вам еще несколько вопросов маленьких - будте добры разрешите мне Вам их задать:
1. using namespace std; - это введение studio? Так как я ранее писал на с++ и потом долго не писал, и не могу понять откуда появилась такая конструкция -и был удивлен, что надо писать
std::cout и т.д. - т.е. что надо добавлять std;
2. при выводе в окне слов русских пишутся крокозябры - проблема с отображением русских букв - будте добры подскажите пожалуйста с чем это связано;
3. Разрешите пожалуйста, Если Вам нетрудно дать какую-нибудь дополнительную информацию (аська или е-mail), обещаю много Вас не беспокоивать и не спрашивать, но если будут вопросы - разрешите пожалуйста, если что я Вам их позадаю.
Все получилось! Вы все правильно поняли и ответили на мой вопрос - как я хотел.
Еще раз Вам большое спасибо за отклик и помощь. У меня в связи с этим к Вам еще несколько вопросов маленьких - будте добры разрешите мне Вам их задать:
1. using namespace std; - это введение studio? Так как я ранее писал на с++ и потом долго не писал, и не могу понять откуда появилась такая конструкция -и был удивлен, что надо писать
std::cout и т.д. - т.е. что надо добавлять std;
2. при выводе в окне слов русских пишутся крокозябры - проблема с отображением русских букв - будте добры подскажите пожалуйста с чем это связано;
3. Разрешите пожалуйста, Если Вам нетрудно дать какую-нибудь дополнительную информацию (аська или е-mail), обещаю много Вас не беспокоивать и не спрашивать, но если будут вопросы - разрешите пожалуйста, если что я Вам их позадаю.
Моя аська:420295240. Очень рад буду Вам!
1. Нет, в Линуксах тоже такая конструкция работает. Связано это с тем, что функции в разных библиотеках могут называться одинаково, но работать по-разному. Вот, чтобы их не путать и было введено namespace. А std - это для "стандартных" библиотечных функций.
> 1. Нет, в Линуксах тоже такая конструкция работает. Связано это с тем,
> что функции в разных библиотеках могут называться одинаково, но работать
> по-разному. Вот, чтобы их не путать и было введено namespace. А std -
> это для "стандартных" библиотечных функций.
Хочу подчеркнуть, что это не просто "работает и в линуксах", а
это поведение, диктуемое стандартом языка С++. Так что работать должно
во всех совместимых со стандартом компиляторах языка С++.
(а других и не бывает, ибо это уже не компилятор С++).
Кстати VC5 со стандартом (90) дружит плохо.
> 2. Вы, наверняка, используете кодовую страницу Windows (1251). А консоль
> отображает буквы в кодовой странице DOS (866). Для правильного
> отображения русских букв необходимо либо конвертировать текст при помощи
> функций CharToOem()/CharToOemBuff(), либо "играться" с настройками
> консоли (что-то типа SetConsoleOutputCP()).
можно просто переключить консоль в кодировку cp1251:
выдать комманду:
(при этом консоль должна быть сконфигурена с юникодными или ANSI -шрифтами,
обычно Lucida подходит).
Posted via ActualForum NNTP Server 1.4
Извините за глупость - но я немного не понял про кодировку и задам следующие вопросы:
1. Функцию: ChatToOem(); - не понял как применить: cout << ChatToOem("Введите целое число\n"); - ?, но так не получается и не выходит - пишет ошибку;
2. Выдать команду: chcp 1251 - тоже не понятно - на каком этапе - в теле программы? Тоже выдает ошибку.
Извините за глупость - но я немного не понял про кодировку и задам следующие вопросы:
1. Функцию: ChatToOem(); - не понял как применить: cout << ChatToOem("Введите целое число\n"); - ?, но так не получается и не выходит - пишет ошибку;
2. Выдать команду: chcp 1251 - тоже не понятно - на каком этапе - в теле программы? Тоже выдает ошибку.
Извините пожалуйста за глупые вопросы.
1.
The CharToOem function translates a string into the OEM-defined character set.
BOOL CharToOem(
LPCTSTR lpszSrc,
LPSTR lpszDst
);
Parameters
ChatToOem() вообще говоря использовать нельзя. Она устаревшая.
> 2. Выдать команду: chcp 1251 - тоже не понятно - на каком этапе - в теле
> программы? Тоже выдает ошибку.
В консоли ДО запуска твоей программы.
Posted via ActualForum NNTP Server 1.4
Как не крутил - все выдает ошибку: не может найти - iostream.h, но затем в итоге узнал, что если
написать такую строчку: std::cout << "Введите целое число\n"; - то все заработало, правда кодировка не та.
Начал условершенствовать программу и вспомнил, что есть функция задержки: getch(); а то сами понимаете окно с надписью появляется и исчезает, но когда вставил функцию: getch(); - но пишет что неизвестна. Вставил тогда: std::getch(); - как для ввода по примеру - и опять не работает - я вообще не понимаю почему?
Будьте добры подскахите пожалуйста как сделать чтоб заработало. Я и не понял с функцией std::cout - почему писать надо так?
Читайте также: