Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Exeil
5 / 5 / 1
Регистрация: 06.12.2010
Сообщений: 50
#1

fread изменяет неиспользуеммые ею переменные - C++

19.12.2010, 12:26. Просмотров 303. Ответов 2
Метки нет (Все метки)

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

Вот то получается в цикле после первого использования fread
Картинка

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
int call_reg()
{
    int k;
    FILE *freg;
    reis n_reg;
    if ((freg = fopen("reg.dat", "rb+")) == NULL)
    {
        fprintf(stderr, "\nЋиЁЎЄ*: ”*©« reis.dat *Ґ ¬®¦Ґв Ўлвм Їа®зЁв**.\n");
        return -2;
    }
 
    printf("  ");
    ramka(74, 0);
    //‚лў®¤ ३ᮢ Ё§ д*©«*
    int size_type_reg = 32*sizeof(char)+14*sizeof(int);
    unsigned long kol_reg = filelength(fileno(freg)) / size_type_reg;
    int i = 0;
    //for(i = 0; i < kol_reg; i++)
    for(i = 0; i < kol_reg; i++)
    {
        fread(&n_reg, size_type_reg, 1, freg);
        printf("%2dє Їг*Єв: %16s ®вЇа*ўЄ*: %2d.%2d.%2d ЇаЁЎлвЁҐ: %2d.%2d.%2d Ї®б*¤ЄЁ: %16s *®¬Ґа б*¬.: %2d є\n", i, n_reg.punkt, n_reg.time_start.p_day, n_reg.time_start.p_chas, n_reg.time_start.p_menuta, n_reg.time_finish.p_day, n_reg.time_finish.p_chas, n_reg.time_finish.p_menuta, n_reg.promej_posadki, n_reg.sam);
    }
    printf("  ");
    ramka(74, 1);
 
    //।*ЄвЁа®ў**ЁҐ б*¬®«Ґв*
    char komanda[90];
    char *l;
    printf("\n‚ўҐ¤ЁвҐ *®¬Ґа ३б*: \n");
    scanf("%s", &komanda);
    flushall();
 
    if (l = strstr(komanda, "edit"))
    {
        l += 4;
        k = atoi(l);
        printf("\n‚ўҐ¤ЁвҐ *®¬Ґа ३б* Ї®¤«Ґ¦*饣® Ё§¬Ґ*Ґ*Ёо: \n*0-*ЁзҐЈ® *Ґ ¬Ґ*пвм\n");
 
        if(k < 0 || k >= i) return 1;
        printf("‚ўҐ¤ЁвҐ ў в*Є®¬ в*Є®¬ Ї®ап¤ЄҐ: [Їг*Єв] [ўаҐ¬п ®вЇа*ўЄЁ] [ўаҐ¬п ЇаЎлвЁп] [Їа®¬Ґ¦гв®з*лҐ Ї®б*¤ЄЁ][*®¬Ґа б*¬®«Ґв*]\n *ЎҐ§ ЁбЇ®«м§®ў**Ёп бЄ®Ў®Є []\n");
        gets(komanda);
 
        //ђ*бЇ®§**Ґ¬ ўўҐ¤Ґ**го Ё*д®а¬*жЁо
        l = strtok(komanda, " ");
        strcpy(n_reg.punkt, l);              //Їг*Єв
 
        //ўаҐ¬п ®вЇа*ўЄЁ ў в*Є®¬ д®а¬*вҐ: [¤Ґ*м.з*б.¬Ё*гв*]
        l = strtok(NULL, " ");
        n_reg.time_start.p_day = atoi(l);    //¤Ґ*м ®вЇа*ўЄЁ
        n_reg.time_start.p_chas = atoi(l+3);
        n_reg.time_start.p_menuta = atoi(l+6);
        //ўаҐ¬п ЇаЁЎлвЁп
        l = strtok(NULL, " ");
        n_reg.time_finish.p_day = atoi(l);     //¤Ґ*м ®вЇа*ўЄЁ
        n_reg.time_finish.p_chas = atoi(l+3);  //з*б
        n_reg.time_finish.p_menuta = atoi(l+6);//¬Ё*гв*
 
        //Їа®¬Ґ¦гв®з*лҐ Ї®б*¤ЄЁ
        l = strtok(NULL, " ");
        strcpy(n_reg.promej_posadki, l);
 
        //*®¬Ґа б*¬®«Ґв*
        l = strtok(NULL, " ");
        n_reg.sam = atoi(l);
 
        //¬Ґ*塞 ў д*©«Ґ
        fseek(freg, k*size_type_reg, SEEK_SET);
        fwrite(&n_reg, size_type_reg, 1, freg);
        fclose(freg);
        printf("‡*ЇЁбм Ё§¬Ґ*Ґ**.");
        getch();
        return -1;
    }
    else
    {
        k = atoi(komanda) - 1;
        return k;
    }
 
}
В чем проблема?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.12.2010, 12:26
Здравствуйте! Я подобрал для вас темы с ответами на вопрос fread изменяет неиспользуеммые ею переменные (C++):

fread - C++
Подскажите пожалуйста, как можно записать в структура данные из файла используя fread, просто все записывается в одну кучу и только одна...

fseek / fread - C++
Всем привет! Такой вопрос возник. Есть строка, состоящая из нескольких &quot;записей&quot; в файле (буквы + числа). Нужно с помощью функций...

Непонятки с fread - C++
Добрый день. Столкнулся с такой проблемой: читаю обычный текстовый файл, однако помимо его содержания мне выдает еще ==**** в конце (причем...

Fread и fout? - C++
Здравствуйте. Была поставлена предо мной задача: Сделать структуру, которая через меню будет выполнять некоторые действия с файлами....

Особенности работы fread - C++
Решаю типовую задачу: считывание заголовка bmp-файла (точечного рисунка). Однако у меня ничего не получалось. В ходе расследования...

Функции fread() и fwrite() - C++
Меня интересует что это за &quot;счётчик&quot; в этих функциях fwrite( massiv, *size_int * sizeof(unsigned int), 1, fp); &lt;= в большинстве примеров...

2
Day
1158 / 963 / 57
Регистрация: 29.10.2009
Сообщений: 1,385
19.12.2010, 13:53 #2
1. Что такое reis ? Какой-то тип данных? Структура?
2. Чем бы он не был, fread(n_reg, sizeof(reis), ...
1
Exeil
5 / 5 / 1
Регистрация: 06.12.2010
Сообщений: 50
19.12.2010, 13:55  [ТС] #3
Цитата Сообщение от Day Посмотреть сообщение
1. Что такое reis ? Какой-то тип данных? Структура?
C++
1
2
3
4
5
6
7
//32*sizeof(char) + 14*sizeof(int)
typedef struct {char punkt[16];
        ptime time_start;
        ptime time_finish;
        char  promej_posadki[16];
        int   sam;
        } reis;
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.12.2010, 13:55
Привет! Вот еще темы с ответами:

Нужен совет fread - C++
Как считать с txt файла значения int с помощью функции fread ( не использовать ifstream и оfstream )

Поиск ошибки в fread - C++
У меня возникла ошибка. Мне нужно прочесть данные с бинарных файлов. Бинарный файл &quot;a.dat&quot; содержит в себе числа '7 0 1 0 1 0 1 0 2 6 2',...

Параметры функции fread - C++
Вот программа: _____________________ #include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;string.h&gt; using...

Функция fread и матрицы - C++
Подскажите, как правильно исп. эту ф-ию для считывания информации из файла в матрицу. Есть маленькая программка, которая никак не хочет...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru