Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 19.08.2015
Сообщений: 2
1

Ошибка завершения программы после "return 0"

20.08.2015, 00:24. Показов 1125. Ответов 2
Метки нет (Все метки)

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
stdafx.h
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
#include "Student.h"
 
Student.h
#include "stdafx.h"
struct StudentRecord
{
 string name;
 float gpa; 
};
 
int _tmain(int argc, _TCHAR* argv[])
{
StudentRecord sr[3];
 int i;
 fstream fout("studrecs.dat", ios::out|ios::binary);
 for (i = 0; i < 3; i++)
 {
  cout « "Input name -> ";
  getline(cin, sr[i].name);
  cout « "Input average mark -> ";
  cin » sr[i].gpa;
  cin.get();
  fout.write((char*)(sr + i), sizeof(sr[i]));      //запись структуры в файл
 }
 fout.close();
 
 StudentRecord srec; 
 fstream fin;
 fin.open("studrecs.dat", ios::in | ios::binary); 
  for (i = 0; i < 3; i++)
 {
  fin.read((char*)&srec, sizeof(srec));
  cout « srec.name « "\n" « srec.gpa « "\n";   //запись файла в структуру
 }
 cout.clear();
 fin.clear();
 fin.close();
return 0;
}
Проблема такого рода: после того как программа выводит всё что находится в файле studrecs.dat, когда переходит на return 0 выдает виндовсовское сообщение "Закрыть программу". Как я понимаю проблема в структуре, а именно в типе данных string. Т.к. если я его заменю на char, то все нормально работает. Чистка потоков не помогает.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.08.2015, 00:24
Ответы с готовыми решениями:

Ошибка "Debug Assertion Failed" после выполнения программы
Перешарив весь интернет поняла, что данная ошибка весьма индивидуальна. Посему прошу помочь знающих...

Ошибка компилирования "error: ‘::main’ must return ‘int’"
должно быть всё верно но вылазит ошибочка,кто знает в чем трабл #include &lt;iostream&gt; #include...

Ошибка "main must return int" в Code::Blocks
#include &lt;iostream&gt; using namespace std; void main(){ float x; float y; cout &lt;&lt; &quot;x = &quot;;...

Ошибка в функции main: "expected ';' before 'return'"
сегодня решил начать изучение с++ сразу наткнулся на проблемы,чуть ли не в каждой строчке,гуглил...

2
2733 / 1892 / 564
Регистрация: 05.06.2014
Сообщений: 5,526
20.08.2015, 00:38 2
Стринги не читаются и не записываются методами read/write. Используйте << и >>, они и в бинарном режиме прекрасно работают. Хотя и с мелкими отличиями в плане обработки спец-символов.
1
0 / 0 / 0
Регистрация: 19.08.2015
Сообщений: 2
20.08.2015, 01:35  [ТС] 3
Спасибо
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.08.2015, 01:35

Warning C4244: return: преобразование "double" в "float", возможна потеря данных
помогите разобраться. пишу программу в функции выдает ошибку в строке с return &quot;warning C4244:...

Исправить ошибку в строках "case 3:zadacha(Uch,Pr,Ocen);break;" и " return 0;"
#include&lt;stdio.h&gt; #include&lt;stdlib.h&gt; #include&lt;time.h&gt; #include&lt;iostream.h&gt; using...

Перегрузка оператора "++" и "--" , компилирует, но при запуске программы - ошибка
#include &lt;iostream&gt; #include&lt;ctime&gt; #include&lt;stdio.h&gt; #include&lt;locale.h&gt; #include &lt;windows.h&gt;...

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно"
В зависимости от времени года &quot;весна&quot;, &quot;лето&quot;, &quot;осень&quot;, &quot;зима&quot; определить погоду &quot;тепло&quot;,...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru