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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.05.2011, 15:23   #1
Mostwanted
Новичок
Джуниор
 
Регистрация: 08.04.2011
Сообщений: 2
По умолчанию Чтение из файла на си

Всем доброго времени суток. Помогите, пожалуйста, с функцией чтения из файла. Я ее написал, но она работает ровно до цикла В цикле считывает мусор. Память под массивы выделена.

Код:
Код:
int load_from_file (double *inp_s, double *out_s, double *time, inp_data_t *inp_d,
                    double *in_len, double *out_len, char *file_name) {
    FILE *file;
    if ((file = fopen(file_name, "r")) == NULL) 
        return FAIL;
    
    fscanf(file, "n = %d\n", &inp_d->n);
    fscanf(file, "t[Start] = %d\n", &inp_d->tSt);
    fscanf(file, "t[Finish] = %d\n", &inp_d->tFin);
    fscanf(file, "u = %lf\n", &inp_d->u);
    fscanf(file, "u[1] = %lf\n", &inp_d->u1);
    fscanf(file, "u[2] = %lf\n\n", &inp_d->u2);
    
    fscanf(file, "\n\n\n");
    int i = 0;
    for (i; i < inp_d->n; i++) {
        fscanf(file, "%*c %*d %*c %lf %*c %lf %*c %lf %*c\n", &time[i], &inp_s[i], &out_s[i]);
    }
    fscanf(file, "\n");
    
    fscanf(file, "Input signal length = %lf\n", &in_len);
    fscanf(file, "Output signal length = %lf\n", &out_len);
    
    fclose(file);
    
    return DONE;
}
Пример файла:
Цитата:
n = 25
t[Start] = -20
t[Finish] = 20
u = -80.00
u[1] = 10.00
u[2] = 100.00

+-----+----------+----------+----------+
| N | Time | Inp | Out |
+-----+----------+----------+----------+
| 1 | -20.00 | 0.00 | 0.00 |
| 2 | -18.33 | -6.67 | 66.67 |
| 3 | -16.67 | -13.33 | 100.00 |
| 4 | -15.00 | -20.00 | 100.00 |
| 5 | -13.33 | -26.67 | 100.00 |
| 6 | -11.67 | -33.33 | 100.00 |
| 7 | -10.00 | -40.00 | 100.00 |
| 8 | -8.33 | -46.67 | 100.00 |
| 9 | -6.67 | -53.33 | 100.00 |
| 10 | -5.00 | -60.00 | 100.00 |
| 11 | -3.33 | -66.67 | 100.00 |
| 12 | -1.67 | -73.33 | 100.00 |
| 13 | 0.00 | -80.00 | 100.00 |
| 14 | 1.67 | -73.33 | 100.00 |
| 15 | 3.33 | -66.67 | 100.00 |
| 16 | 5.00 | -60.00 | 100.00 |
| 17 | 6.67 | -53.33 | 100.00 |
| 18 | 8.33 | -46.67 | 100.00 |
| 19 | 10.00 | -40.00 | 100.00 |
| 20 | 11.67 | -33.33 | 100.00 |
| 21 | 13.33 | -26.67 | 100.00 |
| 22 | 15.00 | -20.00 | 100.00 |
| 23 | 16.67 | -13.33 | 100.00 |
| 24 | 18.33 | -6.67 | 66.67 |
| 25 | 20.00 | 0.00 | 0.00 |
+-----+----------+----------+----------+
Input signal length = 20.00
Output signal length = 38.33
В чем может быть дело? Спасибо.
P.S: пишу в NetBeans 7.0, Max OS 10.5.8
Mostwanted вне форума Ответить с цитированием
Старый 29.05.2011, 15:33   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
%*c
Звездочка? Точно такое возможно?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.05.2011, 15:42   #3
Mostwanted
Новичок
Джуниор
 
Регистрация: 08.04.2011
Сообщений: 2
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Звездочка? Точно такое возможно?
Да, грубо говря, это "чтение в никуда". Т.е значение/символ просто пропускается.
Mostwanted вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Чтение из файла spamersd Помощь студентам 1 26.03.2011 19:03
чтение файла legendary Общие вопросы Delphi 5 26.08.2010 07:32
Чтение файла C++; Rudeboy Помощь студентам 2 08.06.2010 13:23
Чтение из файла utrnjhyfgjktjy Помощь студентам 9 30.01.2010 17:41
чтение из файла dedokk1234 Общие вопросы C/C++ 0 15.06.2009 19:10