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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Рисование в С++ http://www.cyberforum.ru/cpp-beginners/thread902017.html
Написал следующую программу на Турбо С++ 3.0: #include <graphics.h> #include <stdlib.h > #include <stdio.h> #include <conio.h> #define PATHTODRIVER "C\\TC\\BGI" void main(void)
C++ упростить Как можно еще упростить листинг??? #include <iostream> #include <conio.h> #include <math.h> #include <clocale> using namespace std; class complex_number { public: http://www.cyberforum.ru/cpp-beginners/thread902007.html
Графика в Турбо С++ C++
Здравствуйте уважаемые форумчане. Написал следующую программу на Турбо С++ 3.0: #include <graphics.h> #include <stdlib.h > #include <stdio.h> #include <conio.h> #define PATHTODRIVER...
C++ Составить программу, которая по данному числу (1-12) выводит название соответствующего ему месяца
Задача 2 Составить программу, которая по данному числу (1-12) выводит название соответствующего ему месяца.
C++ Паскаль>>>С++ Переведите, пожалуйста, код http://www.cyberforum.ru/cpp-beginners/thread901974.html
uses crt; var f:file of integer; g:file of real; n,a,b,i,j:integer; c:real; begin clrscr; randomize; assign(f,'file1'); rewrite(f);
C++ С перегрузкой. Вывести на экран массив, составленный из элементов, не равных минимальному Задан массив целых чисел. Вывести на экран массив, составленный из элементов, не равных минимальному. подробнее

Показать сообщение отдельно
kirillyu
0 / 0 / 0
Регистрация: 14.06.2013
Сообщений: 10

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

14.06.2013, 21:32. Просмотров 1230. Ответов 20
Метки (Все метки)

Друзья, завтра сдать курсач, неделю парился с кодом. В итоге ничего дельного не вышло. Обращаюсь к вам, умельцы, за скорой помощью. Итак требуется: Создать очередь из файла, совершение операций надо очередью(удаление элемента, добавление, запись в файл, вывод). Проблема в том что почему то не выполняется 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;
    }
 
 
}
заранее благодарен за ЛЮБУЮ оказанную помощь
0
Вложения
Тип файла: txt base.txt (122 байт, 9 просмотров)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru