Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.10.2018, 22:14   #1
Babylon-5
Новичок
Джуниор
 
Регистрация: 21.10.2018
Сообщений: 2
По умолчанию Поведение scanf в Си

Добрый день.

Помогите пожалуйста разобраться с кодом:

Есть код:

Код:
#include <stdio.h>
//Далее подключим Библиотеку для исполнения Dos команд: cls и chcp 1251
#include <windows.h>

int main(void)
{
    system("chcp 1251");
	system("cls");
	system("echo Старт");
	
	char ch;
	
		
	scanf("%c",&ch);
	
	printf("%c\n",ch);
	
	scanf("%c",&ch);
	
	printf("%c\n",ch);
		
	return 0;
}


Вопрос:

В Учебнике Стивена Прата, как и во многих написано, что: 

scanf("%c", &ch);
считывает символ и кладет значение в переменную ch.

При использовании %с обязательно нужно использовать &c.

Почему тогда при попытке ввести больше одного символа, функция считывает их корректно, не ругаясь.
Но следующая функция scanf не срабатывает как нужно, точнее она считывает символ из уже введенных ранее, не прося ввода пользователя ?

Последний раз редактировалось Аватар; 21.10.2018 в 22:24.
Babylon-5 вне форума Ответить с цитированием
Старый 21.10.2018, 22:29   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Ну так работает ввод в консоли, он остается в буфере.
Никто ничего не просит, можно хоть заранее все ввести.
Или брать ввод из файла запустив программу так: myprogram.exe < file.txt
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 21.10.2018, 22:39   #3
Babylon-5
Новичок
Джуниор
 
Регистрация: 21.10.2018
Сообщений: 2
По умолчанию

Прошу прощения. я новичок, момента не могу уловить. Можно более подробнее, если не трудно.
Babylon-5 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
scanf и %d tutejshy Общие вопросы C/C++ 10 13.07.2017 16:56
Не выполняется scanf Alexey! Visual C++ 4 21.03.2016 10:26
scanf cocacola Общие вопросы C/C++ 1 10.07.2014 05:09
scanf zla9_kolu4ka Общие вопросы C/C++ 2 26.03.2014 21:48
scanf intmain Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 25 20.02.2013 17:53