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

Создать очередь из файла, совершение операций надо очередью(удаление элемента, добавление, запись в файл, вывод) - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
kirillyu
0 / 0 / 0
Регистрация: 14.06.2013
Сообщений: 10
14.06.2013, 21:32     Создать очередь из файла, совершение операций надо очередью(удаление элемента, добавление, запись в файл, вывод) #1
Друзья, завтра сдать курсач, неделю парился с кодом. В итоге ничего дельного не вышло. Обращаюсь к вам, умельцы, за скорой помощью. Итак требуется: Создать очередь из файла, совершение операций надо очередью(удаление элемента, добавление, запись в файл, вывод). Проблема в том что почему то не выполняется dobase и я не знаю как выводить полученную очередь. На счет остального задания надеюсь и сам справлюсь но от помощи не откажусь. з.ы. Файл в конце.
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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
 
struct dan
{
  char nazv[15];
  char age2[15];
  char pol[15];
  char kurs[15];
  dan *next;
};
char getworld (FILE *vvod,char *kon,char word)
{
    int i=0;
    while (word!='~')
    {
        *(kon+i)=word;
        word=getc(vvod);
        i++;
    }
    return word;
}
 
void dobase (dan **top)
     {
            FILE *vvod;
            vvod=fopen("base.txt","r");
            dan *per, sled;
            char ch;
            ch=getc(vvod);
            sled=*((dan*)malloc(sizeof(dan)));
            per=(dan*)malloc(sizeof(dan));
            while (ch!=EOF)
            {
                strcpy(per->nazv,sled.nazv);
                strcpy(per->age2,sled.age2);
                strcpy(per->pol,sled.pol);
                strcpy(per->kurs,sled.kurs);
                per->next=(*top);
                (*top)=per;
            }
            puts("1");
            free(&sled);
            free(per);
     }
 
main()
{
    dan* top=NULL;
    top=(dan*)calloc(100,sizeof(dan));
    FILE *vvod;
    dobase(top);  //xz//xzxzxz
}
так же имеется вариант который пробовал осилить до этого но там полная неразбериха)
тут как я понимаю не правильно работает клинер добавив его выводит только первую строку файла.

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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
 
struct dan
{
  char nazv[15];
  char age[15];
  char sex[15];
  char kurs[15];
  dan *next;
};
 
char getword(FILE *vvod, char *konstop,char c)
{
int i=0;
char razdel;
char slovo;
while (razdel!='~');
{
    *(konstop+i)=slovo;
    slovo=c;
    c=getc(vvod);
    i++;
}
    return c;
}
 
void cleaner(char *elem,int n)
{
   int i;
    for(i=0;i<n;i++)
    {
        *(elem+i)=NULL;
    }
}
 
void cleanerall(dan *pal)
{
    cleaner(&pal->nazv[1],15);
    cleaner(&pal->age[1],15);
    cleaner(&pal->sex[1],15);
    cleaner(&pal->kurs[1],15);
}
 
dan* dobase(FILE *vvod)
{
    int k;
    k=0;
    char txt;
    dan *pred, *sled, *pt, temp;
    vvod=fopen("base.txt","r");
    txt=getc(vvod);
    while(txt!=EOF)
    {
        sled=(dan*)malloc(sizeof(dan));
        cleanerall(&temp);
        getword(vvod,&temp.nazv[1],txt);
        txt=getc(vvod);
        getword(vvod,&temp.age[1],txt);
        txt=getc(vvod);
        getword(vvod,&temp.sex[1],txt);
        txt=getc(vvod);
        getword(vvod,&temp.kurs[1],txt);
        txt=getc(vvod);
        k++;
         if (k!=1)
         {
             pred->next=sled;
         }
         else pt=sled;
        *sled=temp;
        pred=sled;
        txt=getc(vvod);
        if (txt==('\n')) txt=getc(vvod);
    }
    sled->next=NULL;
    return pt;
}
 
main()
{
 
    dan *pt,*tmp,*amp;
    FILE *vvod;
    tmp=dobase(vvod);
    puts("1")
    while (tmp->next!=NULL)
    {
            printf("%c",tmp->nazv[1]);
            printf("%c",tmp->age[1]);
            printf("%c",tmp->sex[1]);
            printf("%c",tmp->kurs[1]);
            tmp->next=NULL;
    }
 
 
}
заранее благодарен за ЛЮБУЮ оказанную помощь
Вложения
Тип файла: txt base.txt (122 байт, 6 просмотров)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.06.2013, 21:32     Создать очередь из файла, совершение операций надо очередью(удаление элемента, добавление, запись в файл, вывод)
Посмотрите здесь:

C++ Добавление и удаление элемента динамического массива
Бинарное дерево поиска (удаление, добавление элемента) C++
C++ Описать класс «множество» (добавление и удаление элемента, пересечение, объединение и удаление множеств )
Изменить удаление и добавление элементов в очередь по правилу FIFO. C++
C++ Одномерный динамический массив, передача в функции, добавление и удаление элемента
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Olga_
14.06.2013, 21:38
  #2

Не по теме:

Курсовая... У нас это лабораторная в начале первого курса была

kirillyu
0 / 0 / 0
Регистрация: 14.06.2013
Сообщений: 10
14.06.2013, 21:40  [ТС]     Создать очередь из файла, совершение операций надо очередью(удаление элемента, добавление, запись в файл, вывод) #3
Добавлено через 36 секунд
Цитата Сообщение от Olga_ Посмотреть сообщение

Не по теме:

Курсовая... У нас это лабораторная в начале первого курса была

быть может осталось чего?
Olga_
 Аватар для Olga_
840 / 182 / 16
Регистрация: 01.08.2011
Сообщений: 502
14.06.2013, 21:42     Создать очередь из файла, совершение операций надо очередью(удаление элемента, добавление, запись в файл, вывод) #4
Цитата Сообщение от kirillyu Посмотреть сообщение
Таки, может осталось чего?

Не по теме:

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

kirillyu
0 / 0 / 0
Регистрация: 14.06.2013
Сообщений: 10
14.06.2013, 21:44  [ТС]     Создать очередь из файла, совершение операций надо очередью(удаление элемента, добавление, запись в файл, вывод) #5
Цитата Сообщение от Olga_ Посмотреть сообщение

Не по теме:

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

было бы все так солнечно. может подскажешь по взятии данных из файла?
Olga_
 Аватар для Olga_
840 / 182 / 16
Регистрация: 01.08.2011
Сообщений: 502
14.06.2013, 21:47     Создать очередь из файла, совершение операций надо очередью(удаление элемента, добавление, запись в файл, вывод) #6
struct DAN
{
char nazv[15];
char age2[15];
char pol[15];
char kurs[15];
};

...
struct DAN a;
while(fread(&a, sizeof(a), 1, f))
добавление структуры a в очередь
kirillyu
0 / 0 / 0
Регистрация: 14.06.2013
Сообщений: 10
14.06.2013, 21:53  [ТС]     Создать очередь из файла, совершение операций надо очередью(удаление элемента, добавление, запись в файл, вывод) #7
Цитата Сообщение от Olga_ Посмотреть сообщение
struct DAN
{
char nazv[15];
char age2[15];
char pol[15];
char kurs[15];
};

...
struct DAN a;
while(fread(&a, sizeof(a), 1, f))
добавление структуры a в очередь
спасибо, постараюсь разобраться.
kventin_zhuk
БНТУ ФИТР
 Аватар для kventin_zhuk
214 / 154 / 15
Регистрация: 26.12.2012
Сообщений: 382
14.06.2013, 21:59     Создать очередь из файла, совершение операций надо очередью(удаление элемента, добавление, запись в файл, вывод) #8
Olga_, Дело в том, что считывание так будет работать, если записать информацию в файл соответственно:
C++
1
fwrire(&a, sizeof(a), 1, fpout)
т.е файл бинарный

А судя по содержанию файла - у автора текстовый файл. Нужно считывать строку -> разбивать на лексемы -> формироват ьструктуру -> добавлять в очередь.

Автор, а вы вообще саму очередь правильно реализовали, там добавление - удаление из очереди? Могу заготовочку очереди из наработок, если интересно - проинформируйте)
Olga_
 Аватар для Olga_
840 / 182 / 16
Регистрация: 01.08.2011
Сообщений: 502
14.06.2013, 22:02     Создать очередь из файла, совершение операций надо очередью(удаление элемента, добавление, запись в файл, вывод) #9
Цитата Сообщение от kventin_zhuk Посмотреть сообщение
Olga_, Дело в том, что считывание так будет работать...
это и так понятно, что бинарный, а зачем базу данных в текстовом файле хранить. нужно реализовать операции с бинарным файлом (создание, считывание, добавление), а потом подключить очередь
GetVariable
 Аватар для GetVariable
163 / 119 / 5
Регистрация: 17.03.2013
Сообщений: 283
14.06.2013, 22:02     Создать очередь из файла, совершение операций надо очередью(удаление элемента, добавление, запись в файл, вывод) #10
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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <fstream>
 
struct dan
{
  char nazv[15];
  char age2[15];
  char pol[15];
  char kurs[15];
  dan *next;
};
char getworld (FILE *vvod,char *kon,char word)
{
    int i=0;
    while (word!='~')
    {
        *(kon+i)=word;
        word=getc(vvod);
        i++;
    }
    return word;
}
 
void dobase (dan **top)
     {
            std::ifstream vvod("base.txt");
            dan *per, sled;
            char ch;
            ch=vvod.get();
 
            sled=*((dan*)malloc(sizeof(dan)));
            per=(dan*)malloc(sizeof(dan));
            while (ch!=EOF)
            {
                strcpy(per->nazv,sled.nazv);
                strcpy(per->age2,sled.age2);
                strcpy(per->pol,sled.pol);
                strcpy(per->kurs,sled.kurs);
                per->next=(*top);
                (*top)=per;
            }
            puts("1");
            free(&sled);
            free(per);
     }
 
main()
{
    dan* top=NULL;
    top=(dan*)calloc(100,sizeof(dan));
 
    dobase(&top);  //xz//xzxzxz
}
kirillyu
0 / 0 / 0
Регистрация: 14.06.2013
Сообщений: 10
14.06.2013, 22:03  [ТС]     Создать очередь из файла, совершение операций надо очередью(удаление элемента, добавление, запись в файл, вывод) #11
Цитата Сообщение от kventin_zhuk Посмотреть сообщение
Olga_, Дело в том, что считывание так будет работать, если записать информацию в файл соответственно:
C++
1
fwrire(&a, sizeof(a), 1, fpout)
т.е файл бинарный

А судя по содержанию файла - у автора текстовый файл. Нужно считывать строку -> разбивать на лексемы -> формироват ьструктуру -> добавлять в очередь
Да, именно!

Добавлено через 50 секунд
Цитата Сообщение от Olga_ Посмотреть сообщение
это и так понятно, что бинарный, а зачем базу данных в текстовом файле хранить. нужно реализовать операции с бинарным файлом (создание, считывание, добавление), а потом подключить очередь
в этом задание.
kventin_zhuk
БНТУ ФИТР
 Аватар для kventin_zhuk
214 / 154 / 15
Регистрация: 26.12.2012
Сообщений: 382
14.06.2013, 22:07     Создать очередь из файла, совершение операций надо очередью(удаление элемента, добавление, запись в файл, вывод) #12
kirillyu, догда считываете аля

C++
1
2
3
4
5
6
7
8
char str[255]
while (true)
{
    if (feof(fpout))
    break;
    fgets(str, sizeof(str), fpout); // считываем стрку из файла
    // а здесь нужно из строки str вычленить инфу. Попробуйте поэкспериментировать с sscanf
}
kirillyu
0 / 0 / 0
Регистрация: 14.06.2013
Сообщений: 10
14.06.2013, 22:08  [ТС]     Создать очередь из файла, совершение операций надо очередью(удаление элемента, добавление, запись в файл, вывод) #13
быть может у кого то есть аналогичные работы? или хотя бы похожие части
Olga_
 Аватар для Olga_
840 / 182 / 16
Регистрация: 01.08.2011
Сообщений: 502
14.06.2013, 22:09     Создать очередь из файла, совершение операций надо очередью(удаление элемента, добавление, запись в файл, вывод) #14
можно тогда сразу слова считывать

char s[1024];
while(fscanf(f, "%s", s) != EOF)

и записывать их в соответствующие поля. fgets тут излишний
kirillyu
0 / 0 / 0
Регистрация: 14.06.2013
Сообщений: 10
14.06.2013, 22:10  [ТС]     Создать очередь из файла, совершение операций надо очередью(удаление элемента, добавление, запись в файл, вывод) #15
Цитата Сообщение от kventin_zhuk Посмотреть сообщение
kirillyu, догда считываете аля

C++
1
2
3
4
5
6
7
8
char str[255]
while (true)
{
    if (feof(fpout))
    break;
    fgets(str, sizeof(str), fpout); // считываем стрку из файла
    // а здесь нужно из строки str вычленить инфу. Попробуйте поэкспериментировать с sscanf
}
ок, спасибо. сейчас попробую что нибудь с этим

Добавлено через 1 минуту
бд организована так что там 4 поля и между каждым из них разграничитель ~
Olga_
 Аватар для Olga_
840 / 182 / 16
Регистрация: 01.08.2011
Сообщений: 502
14.06.2013, 22:14     Создать очередь из файла, совершение операций надо очередью(удаление элемента, добавление, запись в файл, вывод) #16
странно, ну да ладно. тогда так

char s[1024], *t;
while(fgets(s, 1024, f) != NULL)
for(t = strtok(s, " \n\t~"); t != NULL; t = strtok(NULL, " \n\t~"))
в t очередное поле
kirillyu
0 / 0 / 0
Регистрация: 14.06.2013
Сообщений: 10
14.06.2013, 22:34  [ТС]     Создать очередь из файла, совершение операций надо очередью(удаление элемента, добавление, запись в файл, вывод) #17
Цитата Сообщение от Olga_ Посмотреть сообщение
странно, ну да ладно. тогда так

char s[1024], *t;
while(fgets(s, 1024, f) != NULL)
for(t = strtok(s, " \n\t~"); t != NULL; t = strtok(NULL, " \n\t~"))
в t очередное поле
большинство фоункции мне к сожалению не знакомы, а знакомится времени нет. можешь написать с ориентацией на мой код?

Добавлено через 1 минуту
Мне лишь нужна рабочая функция dobase. С остальным разберусь.need help dobase

Добавлено через 16 минут
вроде написал и даже компили, только теперь вопрос как вывести получившуюся очередь?
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
#include...
struct dan
{
  char nazv[15];
  char age2[15];
  char pol[15];
  char kurs[15];
  dan *next;
};
char getword (FILE *vvod,char *kon,char word)
{
    int i=0;
    while (word!='~')
    {
        *(kon+i)=word;
        word=getc(vvod);
        i++;
    }
    return word;
}
 
dan* dobase (FILE *vvod)
     {
            vvod=fopen("base.txt","r");
            dan *per, sled;
            char ch;
            ch=getc(vvod);
            while (ch!=EOF)
            {
                sled=*((dan*)malloc(sizeof(dan)));
                per=(dan*)malloc(sizeof(dan));
                getword(vvod,&sled.nazv[1],ch);
                ch=getc(vvod);
                getword(vvod,&sled.age2[1],ch);
                ch=getc(vvod);
                getword(vvod,&sled.pol[1],ch);
                ch=getc(vvod);
                getword(vvod,&sled.kurs[1],ch);
                ch=getc(vvod);
            }
     }
 
 
main()
{
    FILE *vvod;
    dobase(vvod);  //xz//xzxzxz
}
Olga_
 Аватар для Olga_
840 / 182 / 16
Регистрация: 01.08.2011
Сообщений: 502
15.06.2013, 08:36     Создать очередь из файла, совершение операций надо очередью(удаление элемента, добавление, запись в файл, вывод) #18
вот небольшие наброски по созданию очереди и вывода ее на экран

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
82
83
84
85
86
87
88
89
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 1024
 
typedef struct STUDENT
{
  char name[30];
  char age[30];
  char sex[30];
  char kurs[30];
} STUDENT;
 
typedef struct ELT
{
  STUDENT student;
  struct ELT *next;
} ELT;
 
// чтение файла с базой данных
int ReadFile(char *fname)
{
   FILE *f;
   char s[1024], *t;
   if ((f = fopen(fname, "r")) == NULL)
      return 1;
   while (fgets(s, N, f) != NULL)
   {
      for(t = strtok(s, " ~\n\t"); t != NULL; t = strtok(NULL, " ~\n\t"))
         printf("%s  ", t);
      putchar('\n');
   }
   fclose(f);
   return 0;
}
 
/* добавление элемента в конец очереди */
void Add(ELT **first, ELT **last, STUDENT *student)
{
   ELT *q;
   q = (ELT *)malloc(sizeof(ELT));
   q->student = *student;
   q->next = NULL;
   if (*last == NULL)
      *first = q;
   else (*last)->next = q;
   *last = q;
}
 
// создание очереди
int CreateQueue(char *fname, ELT **first, ELT **last)
{
   FILE *f;
   char s[1024], *t;
   STUDENT student;
   if ((f = fopen(fname, "r")) == NULL)
      return 1;
   while (fgets(s, N, f) != NULL)
   {
      t = strtok(s, " ~\n\t"); strcpy(student.name, t);
      t = strtok(NULL, " ~\n\t"); strcpy(student.age, t);
      t = strtok(NULL, " ~\n\t"); strcpy(student.sex, t);
      t = strtok(NULL, " ~\n\t"); strcpy(student.kurs, t);
      Add(first, last, &student);
   }
   fclose(f);
   return 0;
}
 
// вывод элементов очереди на экран
void PrintQueue(ELT *first)
{
   ELT *q = first;
   while(q != NULL)
   {
       printf("%s %s %s %s\n", q->student.name, q->student.age, q->student.sex, q->student.kurs);
       q = q->next;
   }
}
 
int main()
{
   char fname[] = "base.txt";
   ELT *first = NULL, *last = NULL;
   //ReadFile(fname);
   CreateQueue(fname, &first, &last);
   PrintQueue(first);
   return 0;
}
kirillyu
0 / 0 / 0
Регистрация: 14.06.2013
Сообщений: 10
17.06.2013, 23:16  [ТС]     Создать очередь из файла, совершение операций надо очередью(удаление элемента, добавление, запись в файл, вывод) #19
Цитата Сообщение от Olga_ Посмотреть сообщение
вот небольшие наброски по созданию очереди и вывода ее на экран

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
82
83
84
85
86
87
88
89
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 1024
 
typedef struct STUDENT
{
  char name[30];
  char age[30];
  char sex[30];
  char kurs[30];
} STUDENT;
 
typedef struct ELT
{
  STUDENT student;
  struct ELT *next;
} ELT;
 
// чтение файла с базой данных
int ReadFile(char *fname)
{
   FILE *f;
   char s[1024], *t;
   if ((f = fopen(fname, "r")) == NULL)
      return 1;
   while (fgets(s, N, f) != NULL)
   {
      for(t = strtok(s, " ~\n\t"); t != NULL; t = strtok(NULL, " ~\n\t"))
         printf("%s  ", t);
      putchar('\n');
   }
   fclose(f);
   return 0;
}
 
/* добавление элемента в конец очереди */
void Add(ELT **first, ELT **last, STUDENT *student)
{
   ELT *q;
   q = (ELT *)malloc(sizeof(ELT));
   q->student = *student;
   q->next = NULL;
   if (*last == NULL)
      *first = q;
   else (*last)->next = q;
   *last = q;
}
 
// создание очереди
int CreateQueue(char *fname, ELT **first, ELT **last)
{
   FILE *f;
   char s[1024], *t;
   STUDENT student;
   if ((f = fopen(fname, "r")) == NULL)
      return 1;
   while (fgets(s, N, f) != NULL)
   {
      t = strtok(s, " ~\n\t"); strcpy(student.name, t);
      t = strtok(NULL, " ~\n\t"); strcpy(student.age, t);
      t = strtok(NULL, " ~\n\t"); strcpy(student.sex, t);
      t = strtok(NULL, " ~\n\t"); strcpy(student.kurs, t);
      Add(first, last, &student);
   }
   fclose(f);
   return 0;
}
 
// вывод элементов очереди на экран
void PrintQueue(ELT *first)
{
   ELT *q = first;
   while(q != NULL)
   {
       printf("%s %s %s %s\n", q->student.name, q->student.age, q->student.sex, q->student.kurs);
       q = q->next;
   }
}
 
int main()
{
   char fname[] = "base.txt";
   ELT *first = NULL, *last = NULL;
   //ReadFile(fname);
   CreateQueue(fname, &first, &last);
   PrintQueue(first);
   return 0;
}
большое спасибо, ты прям спаситель мой) только не понял при каких условиях работает fname;
while (fgets(s, N, f) != NULL) и вот условие тоже не понял). постараюсь сам разобраться
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.06.2013, 05:04     Создать очередь из файла, совершение операций надо очередью(удаление элемента, добавление, запись в файл, вывод)
Еще ссылки по теме:

C++ Создать бинарный файл, внутри которого можно производить удаление и обновление инфомрации, а также добавление
Добавление и удаление элемента в списке C++
Сделать добавление элемента в массив и удаление элемента из массива используя STL C++

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

Или воспользуйтесь поиском по форуму:
kventin_zhuk
БНТУ ФИТР
 Аватар для kventin_zhuk
214 / 154 / 15
Регистрация: 26.12.2012
Сообщений: 382
18.06.2013, 05:04     Создать очередь из файла, совершение операций надо очередью(удаление элемента, добавление, запись в файл, вывод) #20
kirillyu, При успешном выполнении функция fgets возвращает указатель, адресующий массив символов(т.е ваш первый параметр). В случае ошибки возвращает нулевой указатель. Вот и получается, что пока функции fgets есть что считывать - крутится цикл, а как только она вернула NULL(считывать больше нечего) - цикл прерывается.
Yandex
Объявления
18.06.2013, 05:04     Создать очередь из файла, совершение операций надо очередью(удаление элемента, добавление, запись в файл, вывод)
Ответ Создать тему
Опции темы

Текущее время: 12:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru