imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Компьютеры > Программирование
Опции темы
Старый 13.04.2006, 01:46     # 1
antigo
Member
 
Аватар для antigo
 
Регистрация: 08.10.2003
Адрес: IsraHell
Сообщения: 355

antigo Молодецantigo Молодецantigo Молодец
Домашка по С

не знаю, может надо было Это во тему для новичков, но в обшем дело в следуюшем - на курсе по С нам задали написать программу ктороя бы приняла 2 4-ех значных, положительных числа - первое Scanf в параметр типа int а потом превратить Это число в 4 цифры через пробел (например Scanf 1234 ==> Printf 1 2 3 4) с етим не было проблем (инт, делиш на 1000, %, делиш на 100, % итд...) проблема появилось со вторым 4-ех значным числом - его надо ввести 4-мя сканами в параметp типа Char а Printf должен показать 4-ех значное число(тоже не проблема final=(a-'0')*1000+(b-'0')*100...) сама проблема заключается в том что 1-ый из Этих 4-ех сканов принимает ентер который я нажимаю после ввода первого 4-ех значного числа, поетому пришлось сождавать 5-ый скан для пустого парамтра куда и пойдет ентер - сам вопрос: можно ли Эту фигню решить более деликатно -но создавая 5-го скана???
__________________
©ramtes: "А перезагрузка уже невозможна..."
звучит готично - мне нравится
antigo вне форума  
Старый 13.04.2006, 02:32     # 2
ЕЖ
::VIP::
 
Регистрация: 19.03.2004
Сообщения: 1 329

ЕЖ Бог с наворотамиЕЖ Бог с наворотами
ЕЖ Бог с наворотамиЕЖ Бог с наворотами
Код:
int i;
char a,b,c,d;
scanf("%d\n%c%c%c%c",&i,&a,&b,&c,&d);
Вводить так: 1234[Enter]5678
В i пойдет 1234, в a,b,с,d пойдет соответственно 5,6,7,8. Символы 5678 вводятся без пробелов.

Последний раз редактировалось ЕЖ; 13.04.2006 в 02:45.
ЕЖ вне форума  
Старый 13.04.2006, 11:10     # 3
antigo
Member
 
Аватар для antigo
 
Регистрация: 08.10.2003
Адрес: IsraHell
Сообщения: 355

antigo Молодецantigo Молодецantigo Молодец
второе число я должен ввести 4-мя отдельными сканами (ето они четко отметили) - то есть минимум должно быть 5 сканов
Код:
int i;
char a,b,c,d;
scanf("%d",&i);
scanf("%c",&a);
scanf("%c",&b);
scanf("%c",&c);
scanf("%c",&d);
__________________
©ramtes: "А перезагрузка уже невозможна..."
звучит готично - мне нравится
antigo вне форума  
Старый 13.04.2006, 12:07     # 4
ЕЖ
::VIP::
 
Регистрация: 19.03.2004
Сообщения: 1 329

ЕЖ Бог с наворотамиЕЖ Бог с наворотами
ЕЖ Бог с наворотамиЕЖ Бог с наворотами
Смысл не в количестве scanf, а в символе \n который я тебе указал. Хочешь, пиши 5 scanf, но первый напиши так: scanf("%d\n",&i)
ЕЖ вне форума  
Старый 13.04.2006, 12:56     # 5
GOre01
Junior Member
 
Аватар для GOre01
 
Регистрация: 10.08.2004
Адрес: Завис в конторе
Пол: Male
Сообщения: 180

GOre01 Луч света в тёмном царствеGOre01 Луч света в тёмном царствеGOre01 Луч света в тёмном царствеGOre01 Луч света в тёмном царствеGOre01 Луч света в тёмном царствеGOre01 Луч света в тёмном царстве
Можно еще так:
Код:
int i;
char a,b,c,d;
scanf("%d", &i);
fflush(stdin); // очищает поток
scanf("%c%c%c%c",&a,&b,&c,&d);
Вообще, полезно перед любым сканом делать очистку потока, IMHO.
__________________
Не нервируйте меня. Мне скоро негде будет прятать трупы!

Последний раз редактировалось GOre01; 13.04.2006 в 13:03.
GOre01 вне форума  


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 18:08.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.