Форум программистов, компьютерный форум 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\\TC\\BGI"
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
17.06.2013, 23:16  [ТС]     Создать очередь из файла, совершение операций надо очередью(удаление элемента, добавление, запись в файл, вывод)
Цитата Сообщение от 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) и вот условие тоже не понял). постараюсь сам разобраться
 
Текущее время: 17:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru