IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Программирование (http://www.imho.ws/forumdisplay.php?f=40)
-   -   Домашка по С (http://www.imho.ws/showthread.php?t=102239)

antigo 13.04.2006 01:46

Домашка по С
 
не знаю, может надо было Это во тему для новичков, но в обшем дело в следуюшем - на курсе по С нам задали написать программу ктороя бы приняла 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-го скана???

ЕЖ 13.04.2006 02:32

Код:

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 вводятся без пробелов.

antigo 13.04.2006 11:10

второе число я должен ввести 4-мя отдельными сканами (ето они четко отметили) - то есть минимум должно быть 5 сканов
Код:

int i;
char a,b,c,d;
scanf("%d",&i);
scanf("%c",&a);
scanf("%c",&b);
scanf("%c",&c);
scanf("%c",&d);


ЕЖ 13.04.2006 12:07

Смысл не в количестве scanf, а в символе \n который я тебе указал. Хочешь, пиши 5 scanf, но первый напиши так: scanf("%d\n",&i)

GOre01 13.04.2006 12:56

Можно еще так:
Код:

int i;
char a,b,c,d;
scanf("%d", &i);
fflush(stdin); // очищает поток
scanf("%c%c%c%c",&a,&b,&c,&d);

Вообще, полезно перед любым сканом делать очистку потока, IMHO.


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

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