Спочатку поговоримо про вивід даних на монітор, так як ви, частково, вже з ним зустрічались в минулих уроках. Як ви пам'ятаєте, за допомогою ключового слова 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 << " \а а а а а а п" ;
Написав такий код:
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
голець bufrus[256];
char * rus(Const символ * Текст) {
CharToOem(текст, bufrus);
повернення bufrus;
}
int main()
{
setlocale(LC_CTYPE, “rus”);
std:: cout<<rus("Великий могучий русский язык\n");
std:: cout<<"\nВеликий могучий русский язык\n";
std::cout << "Hello world!" ;
system("pause");
return 0;
}
фатальний C1083 помилки: Неможливо відкрити файл включення: iostrem: Немає такого файлу або каталогу
Що робити?
вже вирішив…
Російські літери висновок Windows XP
код:
#include
#include
голець bufrus[256];
char * rus(Const символ * Текст) {
CharToOem(текст, bufrus);
повернення bufrus;
}
int main()
{
setlocale(LC_CTYPE, “rus”);
std:: cout<<rus("Великий могучий русский язык\n");
std:: cout<<"\nВеликий могучий русский язык\n";
std::cout << "Hello world!" ;
system("pause");
return 0;
}