2015-07-22 4 views
2

В настоящее время я работаю над проектом, и мне нужно сделать что-то очень конкретное. Мне нужно сохранить значение в сортировках database, используя массив символов, но мне также нужно сохранить значение умножения в последнем слоте, и я не знаю, как это сделать. Листинг переменной char и ее умножение, похоже, хранят мусор на int, поскольку я получаю значения в диапазоне, который должен быть. Еще одно предложение, которое я попробовал, это использовать memset(), чтобы вручную установить значение, но я не совсем понимаю, как это сделать.Преобразование типа символа, хранящегося в массиве, в переменную int

Вот мой код

int form_fill(int room_ID, char database[rooms * floors * req_data][20]) { 
    printf ("Enter the first name\n"); 
    fflush(stdin); 
    gets (database[room_ID]); 
    printf ("Enter the second name\n"); 
    gets (database[room_ID + 1]); 
    printf ("Enter the third name\n"); 
    gets (database[room_ID + 2]); 
    printf ("How many days will the guest stay?\n"); 
} 

В идеале дни пользователь вводит, будут храниться в database[room_ID + 3] как char и умноженные на другой переменной, объявленной ранее как глобальный и результат хранится, как char, в database[room_ID + 4]. У кого-нибудь есть решения для этого?

пс. Я знаю, что использование gets небезопасно, но это то, о чем учитель спросил, поэтому я должен.

+5

'fflush (stdin);' --- неопределенное поведение. –

+4

[FYR] 'gets()' is ** evil **, используйте 'fgets()'. –

+4

«Я знаю, что использование gets небезопасно, но это то, о чем учитель спросил, поэтому я должен». - * Всегда задавайте вопросы учителям, они могут обнаружить новые вещи * –

ответ

2

Ваша постановка задача не очень понятно, но как сейчас, общий способ добиться того, что вы хотите, чтобы

  1. Возьмите вход от пользователя для «сколько дней гостевого пребывания?» используя fgets().
  2. Преобразование строки ввод в int с использованием strtol() и хранение в переменной временного int.
  3. Умножьте это значение с вашим глобальным char.
  4. Распечатать результат database[room_ID+4] используя snprintf().
+1

Это сработало отлично! Спасибо большое –

Смежные вопросы