download.bg
 Вход Списание  Новини  Програми  Статии  Форум  Чат   Абонамент  Топ95   Архив 

Въпрос за C !

Автор
Съобщение
programings
Съб, 14.07.12, 11:50
Здравейте!

Имам въпрос за C !

Примерно използвам функцията scanf, и не съм на ясно потребителят какъв тип данни ще въведете, тоест дали ще са знакови данни ( %c ), десетични числа ( %d ) или пък десетични числа с плаваща запетая ( %f ) !

Как мога да съм подготвен във всяка една ситуация, и скрипта ми да не спира при евентуално получен друг тип данни, който е различен от този, записан като параметър на scanf функцията?

Благодаря!

редактиран от programings на 14.07.12 11:50
редактиран от programings на 14.07.12 11:51
phrozencrew
Съб, 14.07.12, 14:20
Прави проверки какво има в стринга, който въвежда потребителя. Ти си се насочил към най-популярния и най-простичкия метод със scanf(). Ако държиш да използваш тази функция:
if(scanf("%d",&x)==1){
  //...  kod
} else {
  //...
}

Ако го използваш за конзолна програма и искаш със сигурност да получиш определен стринг, примерно long float, можеш да вкараш цикъл, който да кара потребителя да въвежда, докато въведе вярното с формата:
int no_assigned;
do {
    printf("Input?");
    no_assigned = scanf("%lf", &input);
} while (no_assigned != 1);

Можеш да потърсиш за други примери с "C check scanf input validation" или от сорта.

programings
Съб, 14.07.12, 15:47
Благодаря ти, Недялко!

Тепърва започвам да го уча този език, и със сигурност ще има още въпроси!

редактиран от programings на 14.07.12 15:51

Коментар

за нас | за разработчици | за реклама | станете автори | in english  © 1998-2024   Experta Ltd.