Ввод и вывод символа. Как разобраться? - C (СИ)
Формулировка задачи:
Всем добрый день!
Я составил учебный пример кода для работы (ввода и вывода) с переменными трёх типов данных: int, float, char .
Надо предварительно ввести данные с клавиатуры и далее программа должна эти данные выводить на консоль.
С числами всё нормально работает.
А работа с символом не получается. Не могу разобраться. Прошу объяснить, что происходит. Исходный код компилируется, но при исполнении программы символ даже не предлагается для ввода и программа следует далее. Использую форматированный ввод/вывод.
//VisualStuduo C++ 2010
//main.cpp
//Use of variable three types: int, float, char
//Data input via the keyboard
#include <stdio.h>
#include <conio.h>
int main(int argc, char* argv[])
{
int A;
float B, Res;
char Simb;
printf("Use of variable three types: int, float, char\n");
printf("Data input via the keyboard\n");
printf(" \n");
printf("Input integer A: \n");
scanf("%d",&A);
printf("Input float B: \n");
scanf("%f",&B);
Res = A / B;
printf (" Res = %f",Res,";");
printf(" \n");
printf(" \n");
printf("Input char Simbol:");
scanf("%c",&Simb);
printf(" \n");
printf (" Simbol = %c",Simb,";");
printf(" \n");
printf(" \n");
printf("For stop program, press the key [Enter]:");
getch();
return (0);
}Решение задачи: «Ввод и вывод символа. Как разобраться?»
textual
Листинг программы
//Use of variable three types: int, float, char
//Data input via the keyboard
#include <stdio.h>
int main()
{
int a = 0;
float b = 0, res = 0;
char simb;
printf("Use of variable three types: int, float, char\n");
printf("Data input via the keyboard\n");
printf("\nInput integer A:\n");
scanf("%d", &a);
printf("Input float B:\n");
scanf("%f", &b);
res = a / b;
printf ("Res = %.1f;\n", res);
getchar ();
printf("\nInput char Simbol:\n");
simb = getchar();
printf ("Simbol = %c;", simb);
printf("\n");
return (0);
}
Объяснение кода листинга программы
- Объявление переменных: int a = 0;
Отображение сообщения:
Use of variable three types: int, float, charОтображение сообщения:Data input via the keyboard - Ввод целого числа: scanf(
%d, &a); - Ввод числа с плавающей точкой: scanf(
%f, &b); - Вычисление результата: res = a / b;
- Вывод результата: printf (
Res = %.1f;\n, res); - Получение символа: simb = getchar();
- Вывод символа: printf (
Simbol = %c;, simb); - Вывод символа новой строки: printf(
\n); - Возврат 0, чтобы указать, что программа успешно завершилась.
- Ключевое слово main() используется для определения точки входа в программу.
- Функция scanf() используется для ввода данных с клавиатуры.
- Функция printf() используется для вывода данных на экран.
- Функция getchar() используется для получения следующего символа из потока ввода.
- Знак
%dв функции scanf() указывает, что вводимое значение должно быть целым числом. - Знак
%fв функции scanf() указывает, что вводимое значение должно быть числом с плавающей точкой. - Знак
%cв функции printf() указывает, что выводимое значение должно быть одним символом. - Знак
&используется для передачи адреса переменной в функцию scanf(). - Знак
.используется для получения значения плавающей точки. - Знак
\nиспользуется для перехода на новую строку. - Знак
0используется для указания успешного завершения программы.