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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Почему не срабатывает инкремент? http://www.cyberforum.ru/cpp-beginners/thread932665.html
В комментарии показал вывод программы. Все переменные почему равны 2 Получается инкремент не оказывает никакого влияния? int a=0, b=0, c=0; c = ++a = b = 2; std::cout << a << " " << b << " " << c; // 2 2 2
C++ Библиотеки на олимпиадах Я собираюсь участвовать в олимпиаде по информатике(Украина). Я использую Microsoft Visual C++ 2010 Express. На олимпиадах, как я знаю часто используюn намного ранние версии этой программы. Скажите пожалуйста, есть ли запрещенные библиотеки на олимпиадах, такие как #include<getch>. Есть ли все библиотеки Microsoft Visual C++ 2010 Express например Microsoft Visual C++ 6.0 и более ранних. Мне это... http://www.cyberforum.ru/cpp-beginners/thread932660.html
C++ Сравнение строк, чисел и т.д
Вот, допустим, хочу я сделать проверку пароля :) Пишу: int main () { string login = "qwerty123"; cout << "Enter password: "; cin >> login; } И нужно сделать проверку пароля, с правильным паролем :) Пробовал так:
C++ Доделайте прогу (Змейка)
Как на этой основе сделать полноценную змейку? #include <conio.h> #include <windows.h> HANDLE StdOutHandle; void putcxy(char c, COORD &coo) { SetConsoleCursorPosition(StdOutHandle, coo); _putch(c); static COORD coo0 = { 0, 0 }; SetConsoleCursorPosition(StdOutHandle, coo0);
C++ Инициализация vector<char> http://www.cyberforum.ru/cpp-beginners/thread932638.html
Добрый день. Подскажи те, как инициализировать vector<char> символами - буквами алфавита.
C++ Ссылка на неразрешенный внешний символ Ошибка 1 error LNK2019: ссылка на неразрешенный внешний символ "void __cdecl phyRestoreConsoleAttributes(void)" (?phyRestoreConsoleAttributes@@YAXXZ) в функции _main Выдают такие ошибки, плюс еще 40 ошибок такого плана. И что это значит? КАк решить проблему? подробнее

Показать сообщение отдельно
Valentina
66 / 66 / 3
Регистрация: 13.05.2012
Сообщений: 130
02.08.2013, 19:22     чтение из файла
помогите, пожалуйста, найти ошибку. При вводе данных о двух работниках, запись их в файл происходит нормально, а от чтение выдает ошибку((
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
#include <fstream>        // для файлового ввода/вывода
#include <iostream>
using namespace std;
 
const int len=32;
const int maxen=100;
 
class name{
private:
  unsigned long number;
  char imia[len];  
  char sername[len]; 
  char familia[len];
  static int n;
  static name* arrap[];
public:
    
    void set_info()
    {
        cin.ignore(10,'\n');
        cout<<"Введите имя работника: "<<endl;
     cin>> imia ;
     cout<<"Введите отчество: "<<endl;
     cin>> sername ;
     cout<<"Введите фамилию: "<<endl;
     cin>> familia ;
     cout<<"Введите номер работника: "<<endl;
     cin>> number ;
    }
    void get_info()
    {
  cout<<"имя работника: "<<endl<<imia<<endl
      <<"отчество: "<<endl<<sername<<endl
      <<"фамилия: "<<endl<<familia<<endl
      <<"номер работника: "<<endl<<number<<endl;
  }
    static void add();
    static void display();
    static void read();
    static void write();
  
 
};
int name::n;
name* name::arrap[maxen];
void name::add()
{
    arrap[n]=new name;
    arrap[n++]->set_info();
}
void name::display()
{
    for(int j=0;j<n;j++)
    {
        cout<<(j+1);
        cout<<"Работник: "<<endl;
        arrap[j]->get_info();
        cout<<endl;
    }
}
//Записать все объекты, хранящиеся в памяти, в файл
void name::write()
  {
  int size;
  name na;
  cout << "Идет запись " << n << " работников.\n";
  ofstream ouf;           // открыть ofstream в двоичном виде
  
 
  ouf.open("EMPLOY.txt", ios::app | ios::binary);
  if(!ouf)
    { cout << "\nНевозможно открыть файл\n"; return; }
  
    
    ouf.write( (char*)&na, sizeof(na) );
    for(int j=0; j<n; j++)  
       ouf.write( (char*)(arrap[j]), sizeof(name) );
    if(!ouf)
      { cout << "\nЗапись в файл невозможна\n"; return; }
}
  
//---------------------------------------------------------
//чтение всех данных из файла в память
void name::read()
  {
  int size;               // размер объекта employee 
  name na;
  ifstream inf;           // открыть ifstream в двоичном виде
  inf.open("EMPLOY.txt", ios::binary);
  if(!inf)
    { cout << "\nНевозможно открыть файл\n"; return; }
  n = 0;                  // В памяти работников нет
  while(true)
    {                     // чтение типа следующего работника
    inf.read( (char*)&na, sizeof(na) );
    if( inf.eof() )       // выход из цикла по EOF
      break;
    if(!inf)              // ошибка чтения типа
      { cout << "\nНевозможно чтение типа\n"; return; }
        arrap[n] = new name;
    inf.read( (char*)arrap[n], sizeof(name)  );
    if(!inf)              // ошибка, но не EOF
      { cout << "\nЧтение данных из файла невозможно\n"; return; }
    n++;                  // счетчик работников увеличить
    }  //end while
  cout << "Идет чтение " << n << " работников\n";
  }
///////////////////////////////////////////////////////////
 
 
 
int main()
{
    setlocale (LC_CTYPE,"rus");
    char ch;
  while(true)
    {
    cout << "'a' – добавление сведений о работнике"
          <<"\n'd' - вывести сведения обо всех работниках"
          <<"\n'w' – записать все данные в файл"
          <<"\n'r' – прочитать все данные из файла"
          <<"\n'x' - выход"
          <<"\nВаш выбор: ";
    cin >> ch;
    switch(ch)
      {
      case 'a':           // добавить работника
        name::add(); break;
      case 'd':           // вывести все сведения
        name::display(); break;
      case 'w':           // запись в файл
        name::write(); break;
      case 'r':           // чтение всех данных из файла
        name::read(); break;
      case 'x': exit(0);  // выход
      default: cout << "\nНеизвестная команда";
      }  //end switch
    }  //end while
system ("pause");
return 0;
    }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 15:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru