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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ 6. Записи в линейном списке содержат ключевое поле типа int. Сформировать двунаправленный список. Удалить из н http://www.cyberforum.ru/cpp-beginners/thread1181489.html
6. Записи в линейном списке содержат ключевое поле типа int. Сформировать двунаправленный список. Удалить из него элемент с заданным номером, добавить элемент в начало списка.
C++ Создать шаблонный класс С++ Пожалуйста помогите, очень прошу, нужно на завтра сделать. Задание: Во время выполнения работы необходимо на языке C + + создать шаблонный класс, который представляет двумерный массив (матрицу). Класс должен предоставлять несколько конструкторов и деструктор. Необходимо также реализовать обработку исключений, связанных с выходом за пределы допустимых значений индексов, предоставить... http://www.cyberforum.ru/cpp-beginners/thread1181481.html
MVS 2012 и getCursorPos C++
tern "C" int __stdcall GetCursorPos(struct tagPOINT *)" (?GetCursorPos@@$$J14YGHPAUtagPOINT@@@Z) т ЇєэъЎшш "private: void __clrcall Є¤ьяшэу::Form1::timer1_Tick(class System::Object ^,class System::EventArgs ^)" (?timer1_Tick@Form1@Є¤ьяшэу@@$$FA$AAMXP$AAVObject@System@@P$AAVEventArgs@4@@Z) 1>Є¤ьяшэу.obj : error LNK2019: ёё√ыър эр эхЁрчЁх°хээ√щ тэх°эшщ ёшьтюы "extern "C" int __stdcall...
C++ Отобразить главную и побочную диагонали матрицы симметрично относительно горизонтальной оси
Здравствуйте, помогите, пожалуйста, решить задачу. Нужно заполнить матрицу случайными числами. Отобразить главную и побочную диагонали симметрично относительно горизонтальной оси.
C++ Сдвиг элементов вектора на единицу вправо http://www.cyberforum.ru/cpp-beginners/thread1181449.html
Как можно сдвинуть элементы вектора на единицу вправо? Знаю можно записать вот так, но это для массива. Мне бы что-то похожее на это, только для вектора. void right( int a, int N) { int temp=a; for (int i=N-1; i>0;i--) a=a; a=temp; }
C++ Мне нужно упростить ввод таких данных #define setCount(x) .count = x #define setWord(x) .word = new (const char *) #define setFunc(x) .func = new (void (*)()) void Reader::initSprites() { threadCount = 2; operationCount = new int; operation = new (Operation (*)); ///Sprite thread подробнее

Показать сообщение отдельно
-Arabella-
0 / 0 / 0
Регистрация: 20.10.2013
Сообщений: 231
19.05.2014, 22:22     Теряется последняя структура при записи в файл
Здравствуйте. Проблема такая: при добавлении в файл еще структур, всегда теряется последняя при выводе на экран, например я хочу добавить данные в файл, ввожу Фамилию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);
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 22:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru