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

Чтение из файла C++ - C++

Восстановить пароль Регистрация
 
fakeplayer
0 / 0 / 0
Регистрация: 11.04.2014
Сообщений: 5
11.04.2014, 22:23     Чтение из файла C++ #1
ввожу код из книги демидовича на тему вывода данных из файла на экран а он не рабочий, помогите пожалуйста
я сделал свой код но все равно ошибка похожая, вроде чтото не правильно со строкой, где нужно прочитать из файла.
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
#include<locale.h>
#include <stdio.h>
#include<iostream>
using namespace std;
 
struct abitur
{ char name[32];                       
  int mark[3];       
};
 
void main()
 
{setlocale(LC_ALL, "Russian");
    struct abitur inf;
  int a;
  FILE *f;
 
  if(!(f=fopen("inf.dat","w+")))
  { cout<<"Ошибка создания файла\n"; return ; }
  for(;;)
  { cout<<"Введите ФИО (пустая строка -- конец списка): ";
    fflush(stdin);                    
    gets(inf.name);
    if(!inf.name[0]) break;
    cout<<"\n Введите три оценки, полученные на экзаменах: ";
    cin>>inf.mark[0]>>inf.mark[1]>>inf.mark[2];
    fwrite(&inf, 1,sizeof(inf), f); 
  }
 
  fclose(f);
 
  cout<<"\nСписок абитуриентов:\n";
  if(!(f=fopen("inf.dat","r")))
  {  cout<<"Ошибка создания файла\n"; return ;}
  while(1)
  {   if(sizeof(inf) == fread(&inf, sizeof(inf), 1,f)) 
      break;   /* Если не удалось прочитать необходимое 
                  количество байт, то заканчиваем чтение */
      cout<<inf.name<<inf.mark[0]<<inf.mark[1]<<inf.mark[2]<<endl;
  }
  fclose(f);
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.04.2014, 22:23     Чтение из файла C++
Посмотрите здесь:

C++ Чтение из файла
чтение из файла C++
чтение из файла C++
C++ Чтение из файла
чтение из файла C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Izual
 Аватар для Izual
93 / 118 / 6
Регистрация: 13.11.2012
Сообщений: 1,517
12.04.2014, 00:24     Чтение из файла C++ #2
Подробнее, что там не получается, какая ошибка, что записывается\вводится... ~ ~
gazlan
2867 / 1815 / 272
Регистрация: 27.08.2010
Сообщений: 4,921
Записей в блоге: 1
12.04.2014, 03:56     Чтение из файла C++ #3
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
#include<locale.h>
#include <stdio.h>
#include<iostream>
 
using namespace std;
 
#define MAX_MAME_LEN             (32)
#define MAX_ESIMATE_CNT          (3)
 
struct   Abiturientis
{ 
   char     pszName  [MAX_MAME_LEN + 1];                       
   int      iEstimate[MAX_ESIMATE_CNT];       
};
 
int main(int argc,char** argv)
{
   setlocale(LC_ALL,"Russian");
   
   Abiturientis      Info;
 
   memset(&Info,0,sizeof(Abiturientis));
   
   FILE*    pIn = fopen("inf.dat","wt+");
 
   if (!pIn)
   { 
      cout << "Ошибка создания файла\n"; 
      return 0; 
   }
 
   while (true)
   { 
      fflush(stdin);                    
 
      cout << "Введите ФИО (пустая строка -- конец списка): ";
 
      gets(Info.pszName);
      
      if (!*Info.pszName) 
      {
         break;
      }
 
      cout << "\n Введите три оценки, полученные на экзаменах: ";
    
      cin >> Info.iEstimate[0] >> Info.iEstimate[1] >> Info.iEstimate[2];
 
      fwrite(&Info,1,sizeof(Info),pIn); 
   }
    
   fclose(pIn);
   pIn = NULL;
 
   cout << "\nСписок абитуриентов:\n";
   
   pIn = fopen("inf.dat","rt");
 
   if (!pIn)
   {  
      cout << "Ошибка создания файла\n"; 
      return 0;
   }
 
   while (true)
   {   
      if (fread(&Info,1,sizeof(Info),pIn) != sizeof(Info)) 
      {
         // Если не удалось прочитать необходимое количество байт, то заканчиваем чтение
         break;   
      }
         
      cout << Info.pszName << Info.iEstimate[0] << Info.iEstimate[1] << Info.iEstimate[2] << endl;
   }
     
   fclose(pIn);
 
   return 0; 
}
Миниатюры
Чтение из файла C++  
fakeplayer
0 / 0 / 0
Регистрация: 11.04.2014
Сообщений: 5
12.04.2014, 17:27  [ТС]     Чтение из файла C++ #4
Цитата Сообщение от Izual Посмотреть сообщение
Подробнее, что там не получается, какая ошибка, что записывается\вводится... ~ ~
программа завершается после break, данные в массив сохраняются но при выводе из файла, дальше оператора break не выходит, то есть вообще из файла не выводится, а пример взят из книги.
а вводить например 3 учеников(qqq 1 1 1; www 2 2 2; eee 3 3 3) и оценки каждого
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
13.04.2014, 00:48     Чтение из файла C++ #5
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от fakeplayer Посмотреть сообщение
но при выводе из файла, дальше оператора break не выходит,
C++
1
2
if(sizeof(inf) != (fread(&inf, 1, sizeof(inf), f))) 
    break;
fakeplayer
0 / 0 / 0
Регистрация: 11.04.2014
Сообщений: 5
13.04.2014, 20:26  [ТС]     Чтение из файла C++ #6
Цитата Сообщение от alsav22 Посмотреть сообщение
Сообщение от fakeplayer Посмотреть сообщение
но при выводе из файла, дальше оператора break не выходит,
Код C++
1
2
if(sizeof(inf) != (fread(&inf, 1, sizeof(inf), f)))
break;
да, это я забыл исправить, но все равно не выводит ответ, при == циклится, а при != ничего не происходит

Добавлено через 20 минут
if(sizeof(inf) != fread(&inf, 1,sizeof(inf),f)
над было всего лишь поменять местами 1 и sizeof
тема закрыта, всем спасибо,
еще вопрос, зачем использовать memset?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.04.2014, 02:43     Чтение из файла C++
Еще ссылки по теме:

Чтение из файла. C++
C++ Чтение из файла
C++ Чтение из файла

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

Или воспользуйтесь поиском по форуму:
Izual
 Аватар для Izual
93 / 118 / 6
Регистрация: 13.11.2012
Сообщений: 1,517
15.04.2014, 02:43     Чтение из файла C++ #7
Вот

Цитата Сообщение от Yandex:'memset C++ MSDN'
Устанавливает буферов до указанного символа.
Тоесть обнуляет /n символ наверно.
Yandex
Объявления
15.04.2014, 02:43     Чтение из файла C++
Ответ Создать тему
Опции темы

Текущее время: 00:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru