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

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

Войти
Регистрация
Восстановить пароль
 
-Arabella-
0 / 0 / 0
Регистрация: 20.10.2013
Сообщений: 233
#1

Теряется последняя структура при записи в файл - C++

19.05.2014, 22:22. Просмотров 118. Ответов 0
Метки нет (Все метки)

Здравствуйте. Проблема такая: при добавлении в файл еще структур, всегда теряется последняя при выводе на экран, например я хочу добавить данные в файл, ввожу Фамилию1 и цифирки к ней и нажимаю просмотреть данные (функция output) и эта структура не отображается, хотя в файл записывается, потом я опять выбираю пункт в меню добавить данные и ввожу Фамилия2 и цифирки и Фамилия1 появляется, а вот Фамилия2 нет и так всегда. Подскажите, пожалуйста, в чем ошибка?
C++ (Qt)
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
void output()
{
seller st;
char filename[]="sellers.dat";
char filename1[]="seller.dat";
int n;
FILE *f;
FILE *f1;
clrscr();
f=fopen(filename,"rb+");
f1=fopen(filename1,"wb+");
if(f)
{
fseek(f,0,SEEK_END);
n=ftell(f)/sizeof(seller);
seller* sell=new seller [n];
fseek(f,0,SEEK_SET);
 
   fread(sell,sizeof(seller),n,f);
   printf("\n FIO | Time | Weight things | Thing | Service Time Of One Purchase ");
for(int i=0;i<n-1;i++)
{
int k=1;
strcpy(st.FIO,sell[i].FIO);
st.at=sell[i].at;
st.ves=sell[i].ves;
st.shtuk=sell[i].shtuk;
st.time=sell[i].time;
for(int j=i+1;j<n;j++)
{
if(strcmp(sell[i].FIO,sell[j].FIO)==0 && sell[j].FIO!=0)
{
k++;
strcpy(sell[j].FIO,"\0");
st.at=st.at+sell[j].at;
st.ves=st.ves+sell[j].ves;
st.shtuk=st.shtuk+sell[j].shtuk;
st.time=st.time+sell[j].time;
}
}
if(strcmp(st.FIO,"\0")!=0)
{
st.at=st.at/k;
printf("\n %25s  | % 5.2f  | % 2d  | %2d  | %5.2f",st.FIO,st.time,st.ves,st.shtuk,st.at);
fwrite(&st,sizeof(st),1,f1);
}
}
fclose(f1);
}
printf("\n Press any key");
getch();
fflush(stdin);
fclose(f);
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.05.2014, 22:22     Теряется последняя структура при записи в файл
Посмотрите здесь:

Баг при использовании класса string при записи в бинарный файл - C++
При записи в бинарный файл пользовательского класса, всё отлично отрабатывает, но, если в классе использовался класс string, то в конце...

Ошибка при записи в файл - C++
Помогите добить задачку на С++. В общем прога работает правильно вот только когда идет запись в файл, то в файле находятса не данные...

Ошибка при записи в файл - C++
помогите, вылетает ошибка при записи в файл ф-я void add_in_file(int n) что не так? #include &lt;iostream&gt; #include &lt;conio.h&gt; ...

Неверная кодировка при записи в файл - C++
как сделать так чтобы программа смогла записывать русский и украинский язык у меня записывает только цифры ангалийську язык #include...

С++ и Stack overflow при записи в файл - C++
Есть функция, которая заполняет XML файлы и следующей упаковке их в *.odt(OpenOffice Writer) Так вот на 1700+ итерации StackOverflow... и...

Перевод строки при записи в файл - C++
Почему при выводе на экран оператор endl; переводит строку на новую, а при записи в файл не переводит, а печатает всё в строчку ? ...

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

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

Мусор при записи значений в файл - C++
Дорого времени суток господа! Извиняюсь, если где-то уже была создана такая тема и я не поискал ее. При записи букафф в файл вылезая...

Ошибка при записи в бинарный файл - C++
Задание - записать в бинарный файл последовательность из N байт вида &quot;00001111 11110000 00001111 ...&quot;. Почему-то 11110000 записывается...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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