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

Переход на нужную позицию в файле и затем считывание с этой позиции - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вычислить значение функции http://www.cyberforum.ru/cpp-beginners/thread868835.html
Здравствуйте! помогите, пожалуйста, написать программу для задания: F(x) = (x – a) / (x – c) - при x > 3 и b = 0, { a x^2 – b x + c - при x < 3 и b != 0, x / c - в остальных случаях. G = НЕ (A ИЛИ B) И (A МОД2 C)
C++ Вместо нуля выводит непонятное число Вот пожалуйста кусок кода, считающий неувязку после решения СЛАУ: int n=5; double **a, *b, *x, r, c, s, q; int i, j, d, p, m, k; ---------------------//---------------------- double nev, del, z, summ; for (i=1; i<=n; i++) { http://www.cyberforum.ru/cpp-beginners/thread868832.html
Задачи. Однонаправленные связные списки C++
Здравствуйте, пытаюсь разобраться со связными списками, решаю задания и столкнулся с проблемами (заданиями), в которых не могу разобраться: 1) Нужно перенести 3-й элемент в начало списка. 2) Разбить список на два подсписка с отрицательными элементами в одном, положительными в другом (Для набора действительных чисел, представленных в виде списка, построить два списка: положительных и...
C++ Используя цикл с постусловием, составить программу табулирования функции F(x)=sin(x)-cos(x) на отрезке [a, b] с шагом h
Помогите написать пожалуйста программу: Используя цикл с постусловием, составить программу табулирования функции F(x)=sin(x)-cos(x) на отрезке с шагом h. Результат представить в виде таблицы, первый столбец которой – значения аргумента, второй – соответствующие значения функции. Вот что получилось у меня, но это не правильно... #include <cstdlib> #include <iostream> #include <math.h> ...
C++ Консольный параметры http://www.cyberforum.ru/cpp-beginners/thread868821.html
Доброго всем времени суток! У меня есть некая задумка, для которой необходимы размеры окна консоли. Вопрос,если ли в СИ++ какие - нибудь функции или что-то подобное, чтобы получать эти параметры, а еще изменять их,чтобы размер окна тоже менялся??
C++ Подправьте задачу (удалить из массива элементы которые встречаются ровно 2 раза) #include "stdafx.h" #include <iostream> #include <stdio.h> #include <stdlib.h> #include <time.h> #define N 100 using namespace std; void gen (int a, int b, int n, int mass); void out (int n, int mass); подробнее

Показать сообщение отдельно
nati94
2 / 2 / 0
Регистрация: 18.02.2013
Сообщений: 29

Переход на нужную позицию в файле и затем считывание с этой позиции - C++

18.05.2013, 01:47. Просмотров 272. Ответов 0
Метки (Все метки)

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

тут только часть кода, наверн этого достаточно

я строю дек
затем хочу добавить еще элемент, справа и слева
потом удаляю, очищаю память

пробовала и функцииями fseek(), ftell() и fgetpos(),fsetpos
но результат в принципе одинаковый, когда считываю, то считывается, как я понимаю, пустая строка
все работает кроме этого кусочка
если не заморачиваться и добавлять первый элемент из файла, то выводит нормально, но мне надо считывать файл последовательно
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
void Spisok::FormFromFile ()
//Построение дека :// ld - указатель на левый конец дека,
// rd - Указатель на правый конец дека.
{ file=fopen(filename,"r+t");
  node *k;
  TICKET el;
  int i=1;
  printf("Построение дека из файла:\n");
 fseek(file, 0, SEEK_SET); 
 fscanf(file,"%d  %s  %s  %s  %s\n",&el.number,&el.Station_Departure,&el.Station_Coming,&el.Data_Time_Departure,&el.Data_time_Coming); 
  
  if  (i)
  { l=0;
    k = new (node);
    (*k).elem =el; 
    (*k).sled = NULL;
    ld = k; rd = k; 
    l++;
    printf("Добавлен элемент,продолжать?? 0-нет");
    scanf("%i",&i);
    fscanf(file,"%d  %s  %s  %s  %s\n",&el.number,&el.Station_Departure,&el.Station_Coming,&el.Data_Time_Departure,&el.Data_time_Coming); 
    while  (i)
  {
    
      AddRight (el); 
  fscanf(file,"%d  %s  %s  %s  %s\n",&el.number,&el.Station_Departure,&el.Station_Coming,&el.Data_Time_Departure,&el.Data_time_Coming); 
  printf("Добавлен элемент,продолжать?? 0-нет");
  scanf("%i",&i);
   }
 }
 
  else
    {rd = NULL; ld = NULL;}
  fgetpos(file, &file_loc);  
  fclose(file);
}
 
 
void Spisok::AddFromFileRight()
// Помещение звена, содержащего элемент el, в дек справа.
// ld - указатель на левый конец дека,
// rd - указатель на правый конец дека.
{ node *k;
TICKET el;
file=fopen(filename,"r+t");
  k = new (node);
  //fseek(file,position, SEEK_SET);
  fsetpos(file, &file_loc);
  fscanf(file,"%d  %s  %s  %s  %s\n",&el.number,el.Station_Departure,el.Station_Coming,el.Data_Time_Departure,el.Data_time_Coming); 
  printf("Номер\tСтанция отправления\tСтанция прибытия\tДата отправления\tДата прибытия\n");
  printf("Добавленный элемент справа:\n%d  %s  %s  %s  %s\n",&el.number,
      el.Station_Departure,el.Station_Coming,el.Data_Time_Departure,el.Data_time_Coming);
   l++;
  (*k).elem = el;
  (*k).sled = NULL;
  if  (rd!=NULL)
    {(*rd).sled = k; rd = k;}
  else
    {rd = k; ld = k;}
  fgetpos(file, &file_loc);
  fclose(file);
  }
 
void Spisok::AddFromFileLeft()
//Помещение звена, содержащего элемент el, в дек слева.
// ld - указатель на левый конец дека,
// rd - указатель на правый конец дека.
{
  node *k;
  TICKET el;
  file=fopen(filename,"r+t");
  k = new (node);
  fsetpos(file, &file_loc); 
  fscanf(file,"%d  %s  %s  %s  %s\n",&el.number,el.Station_Departure,el.Station_Coming,el.Data_Time_Departure,el.Data_time_Coming); 
  printf("Добавленный элемент слева:\n%d  %s  %s  %s  %s\n",&el.number,
      el.Station_Departure,el.Station_Coming,el.Data_Time_Departure,el.Data_time_Coming); 
  position=ftell(file)+1;
   l++;
  (*k).elem = el; 
  (*k).sled = ld;
  if  (ld!=NULL) ld = k;
  else  {ld = k; rd = k;}
  fgetpos(file, &file_loc);
  fclose(file);
}
Добавлено через 1 час 20 минут
помощь уже не нужна
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru