Сначала поговорим о выводе данных на монитор, так как вы, отчасти, уже с ним сталкивались в предыдущих уроках. Как вы помните, при помощи ключевого слова cout, мы можем вывести на монитор строку, которую пишем в “кавычках”, либо значение переменной, обратившись к ней по имени . Так же вы знакомы с оператором endl, который позволяет перевести вывод на следующую строку. И еще один важный момент – мы можем комбинировать вывод данных используя оператор << несколько раз после cout:
cout << “Значение переменной var_name = ” << var_name << endl;
Теперь мы познакомимся еще с несколькими специальными символьными последовательностями, которые помогут нам манипулировать выводом данных на экран. Вот перечень:
Вы посмотрели и задумались ))) Зачем использовать обратный слэш? Рассмотрим на примере. Нам надо вывести на экран цитату из фильма. Сразу пусть прозвучит сигнал, который привлечет внимание пользователя на экран. По центру разместим заголовок и название фильма, из которого цитируем, а ниже – цитату.На экране должно выглядеть так:
Постарайтесь набрать код самостоятельно! Решение ниже:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #include<iostream> using namespace std; int main() { setlocale(LC_ALL, "rus"); cout << "\a\a\a\a\a\n"; cout << "\t\t\\ Цитата из фильма \"Джентльмены удачи\" \\ \n"; cout << "— Мы вам приклеиваем парик.\n"; cout << "— Так.\n"; cout << "— Рисуем татуировку.\n"; cout << "— Так.\n"; cout << "— И сажаем в тюрьму.\n"; cout << "— Так… А за что это?\n"; return 0; } |
Зачем нам нужен обратный слэш? Он говорит компилятору: “Внимание, за мной стоит не простой символ, а специальный! Он скажет тебе, что нужно сделать! :)” Вот в строке 8, если бы мы не использовали с вами обратный слэш, на экран бы пошёл вывод пяти символов а. А так, мы услышим “прекрасную музыку”. В строке 9 тоже интересно: две табуляции, далее надо вывести на экран один бэк слэш, а фактически надо написать два, ну и берём в кавычки название фильма. В конце каждой строки вместо манипулятора потока endl (<< endl) который позволяет перейти на новую строку (фактически аналог кнопки Enter на вашей клавиатуре) удобнее и короче, в данном случае, использовать управляющий символ \n.
Теперь поговорим о вводе данных пользователем с клавиатуры. Мы уже знаем – чтобы присвоить значение переменной, её можно инициализировать при создании либо присвоить значение ниже по ходу программы: имяПеременной = значение; А сейчас мы научимся записывать в переменную значение, которое вводит пользователь с клавиатуры. Мы можем организовать ввод данных используя операторы cin и >> . Синтаксис следующий: cin >> имяПеременной. Рассмотрим эту возможность на примере:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | #include <iostream> using namespace std; int main() { setlocale(LC_ALL, "rus"); int amount = 33; int new_trees = 0; cout << "Сколько деревьев вы посадили сегодня? "; cin >> new_trees; cout << "Количество деревьев в парке: " << amount << endl; cout << "Вы посадили " << new_trees << " деревьев.\n"; cout << "Всего стало: " << amount + new_trees << endl; return 0; } |
Запустите программу и обратите внимание – программа выполнит команду 11-й строки и, дойдя до оператора cin >>, остановится и начнется ожидание действия от пользователя. Надо ввести значение и нажать Enter. Как только переменная получит значение, введенное с клавиатуры, программа продолжит выполнение.
Стоит отметить, что cin понимает и различает типы переменных. И если ввести в int символ, а не цифру, значение переменной не изменится. А если ввести несоответствующее значение в переменную, которая не инициализирована при создании, на экран будет показан какой-то остаточный “мусор” из переменной. Чтобы вводить символы – переменные надо объявлять типа char. Мы обязательно вскоре научимся с вами проверять правильность ввода данных пользователем. А так же научимся вводить с клавиатуры не одиночные символы, а целые строки.
Дополнительное необходимое усилие от вас – просмотр видео-уроков :) В них представлена и дополнительная информация не рассмотренная в статье. Смотрите всё! Для вас это только +
Желательно после прочтения теории приступить к практике – задачи тут.
Поделитесь этой статьей со своими друзьями. Мы будем благодарны! Все возникшие вопросы, задавайте в комментариях.
подскажите, почему не слышу гудка от \a ?!!
на Форуме программистов мне подсказали так: http://programmersforum.ru/showthread.php?t=276142
А какая операционная среда у тебя установлена?
Может неправильно написал, вот так cout << " \a\a\a\a\a\a\n" ;
Написал такой код:
int amount_of_apples1=0;
int amount_of_apples2=0;
int inBox = 0; //для записи общего количества
cin >> amount_of_apples1;
cin >> amount_of_apples2;
….
….
При запуске программы, на запрос ввел не число а строку, понятно что значение amount_of_apples1 не изменилось, остался 0. Но при этом оператор cin >> amount_of_apples2 был проигнорирован, почему. Значение amount_of_apples2 не запросилось и соответственно тоже осталось 0.
#include
using namespace std;
int main()
{
setlocale(LC_ALL,”rus”);
cout << " А почему ей в ресторане никогда не нравится то,\n";
cout << " что заказала она, и всегда нравится то что заказал я?\n";
cout << " И она начинает есть у меня из тарелки. Я ей говорю:\n";
cout << " <>.Она говорит:<< Зачем?\n";
cout <>.И съедает наполовину.\n”;
cout << " \t\t\\к.ф.\"О чем говорят мужчины\" \\ \n";
return 0;
}
3 упражнение сделал
Почему когда запускаю программу то вместо обыкновенных букв вылезает какая то непонятная фигня?
А потому, что когда хочешь получить ответ на вопрос, эту “фигню” нужно показывать (копировать), а не рассказывать про неё “на пальцах”.
Попробуй на следующей строчки после квадратной скобки ввести setlocale(LC_ALL, “rus”);
Почему у меня место русского языка абракадабра ? Dev-c++ использую .
код:
#include
#include
char bufrus[256];
char * rus(const char* text) {
CharToOem(text, bufrus);
return bufrus;
}
int main()
{
setlocale(LC_CTYPE, “rus”);
std:: cout<<rus("Великий могучий русский язык\n");
std:: cout<<"\nВеликий могучий русский язык\n";
std::cout << "Hello world!" ;
system("pause");
return 0;
}
fatal error C1083: Не удается открыть файл включение: iostrem: No such file or directory
Что делать?
Уже решил…
Русские буквы вывод Windows XP
код:
#include
#include
char bufrus[256];
char * rus(const char* text) {
CharToOem(text, bufrus);
return bufrus;
}
int main()
{
setlocale(LC_CTYPE, “rus”);
std:: cout<<rus("Великий могучий русский язык\n");
std:: cout<<"\nВеликий могучий русский язык\n";
std::cout << "Hello world!" ;
system("pause");
return 0;
}