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

Работа с файлами - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Ошибка в коде программы для кв. уравнений http://www.cyberforum.ru/cpp-beginners/thread113937.html
вопрос такой почему у меня все время ошибки в этом коде (Квадратное уравнение) Пишу в этот раздел тк я в C++ два дня #include <iostream> int AA BB CC DD X1 X2 using namespace std; int main() { std::cout<<"A = "; //На экран выводится 'X = ' std::cin>>AA; //вводим с клавиатуры число, например: 5 std::cout<<"B = "; //На экран выводится 'Y = '
C++ Счетчик совпадающих битов На IN_0 и IN_1 подаются два 4-х битных числа, на выходе OUT_0 - число совпадающих единичных битов во входных числах. IN_0 4бит-вх IN_1 4бит-вх OUT_0 3бит-вых http://www.cyberforum.ru/cpp-beginners/thread113886.html
Записать каждое десятичное число в виде целой десятичной, восьмеричной и шестнадцатеричной константы C++
записать каждое десятичное число в виде целой десятичной, восьмеричной и шестнадцатиричной константы: 35 163 249 89
Bычислить z=sqrt(x) C++
Bычислить z=sqrt(x), где sqrt(x) функция, которая возвращает целую часть от корня квадратного числа x z-выход-8бит х-вход-16бит
C++ Работа с файлами http://www.cyberforum.ru/cpp-beginners/thread113636.html
Привет. вызвало сложность написать программку. помогите пожалуйста. Дан символьный файл *) f. Получить копию файла в файле g. *) Файл, компоненты которого являются символами, называется символьным файлом.
C++ Найти максимальный элемент n-ой строки данной матрицы Дано число n (0<n<9) и матрица 10x10 элементов. Найти максимальный элемент n-ой строки данной матрицы. Буду очень благодарен за помощь. подробнее

Показать сообщение отдельно
Олег@tor
9 / 9 / 1
Регистрация: 22.10.2009
Сообщений: 24
08.04.2010, 19:57     Работа с файлами
Вот, я считаю не плохая программка с комментариями для примера работы с файлами.

Условие. Написать программу, вводящую в файл или читающую из файла
ведомость студентов, сдавших экзамены. Каждая структура должна содержать
фамилию, а также оценки по математике и программированию. Вывести список
студентов, сдавших экзамен по программированию с оценкой 4, и записать эту
информацию в текстовой файл.

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
142
143
144
145
146
147
148
149
150
151
152
153
#include <iostream.h>  
#include <stdio.h>  
#include <conio.h> 
#include <stdlib.h> 
#include <string.h> 
 
 FILE *fl; 
typedef struct  
{ 
    char fio[30]; 
      unsigned char matem; 
    unsigned char oaip; 
} TStudent; 
 
     TStudent stud[30];  // Массив структур 
      char name[20];       // Имя файла 
      int nst=0;       // Число введенных структур 
int menu();        // Меню 
void nnf();            // Ввести имя файла 
void newf();     // Создать новый файл 
void spisok();       // Ввести список 
void opf();            // Открыть файл 
void resc();      // Вывести результат на экран 
void resf();       // Вывести результат в файл 
 
int main()  
{  
while (true)  
{ 
 switch (menu()) 
{ 
  case 1: nnf();    break; 
  case 2: newf();   break; 
  case 3: spisok(); break; 
  case 4: opf();    break; 
  case 5: resc();   break; 
  case 6: resf();   break; 
  case 7: return 0; 
    default: "Viberite pravilno!"; 
}  
 
 puts("Press any key to continue");  
 getch();      system("cls");  
}  
}  
 
int menu() // Меню 
{ 
 cout << "VIBERITE:" << endl; 
 cout << "1. Vvod file name" << endl; 
 cout << "2. New file" << endl; 
 cout << "3. Vvesti spisok" << endl; 
 cout << "4. Open file" << endl; 
 cout << "5. Vivesti result" << endl; 
 cout << "6. Vivesti v fail" << endl; 
 cout << "7. Exit" << endl; 
 int i; 
 cin >> i; 
 return i; 
} 
 
void nnf()       // Ввести имя файла 
{ 
  cout << "Vvedite file name" << endl; 
  cin >> name; 
} 
 
void newf()      // Создать новый файл 
{ 
 if ((fl = fopen(name,"wb"))==NULL) 
 { 
   cout << "Oshibka pri sozdanii"<<endl; 
    exit(1); 
 } 
  cout << "OK" << endl; 
 fclose(fl); 
} 
 
void spisok()       // Ввести список 
{ 
 if ((fl = fopen(name,"rb+"))==NULL) 
 { 
   cout << "Oshibka pri sozdanii"<<endl; 
    exit(1);  
 
 } 
 
 cout << "Vvedite chislo studentov " << endl; 
 cin >> nst; 
 
 for (int i=0; i<nst; i++) 
 { 
 cout << "Vvedite imya: "; 
   cin >> stud[i].fio; 
 cout << "Vvedite otcenku po matematike: "; 
   cin >> stud[i].matem; 
 cout << "Vvedite otcenku po OAiP: "; 
   cin >> stud[i].oaip; 
   fwrite( &stud[i], sizeof(TStudent), 1, fl ); 
 } 
  fclose(fl); 
} 
 
void opf()       // Открыть файл 
{ 
if ((fl = fopen(name,"rb"))==NULL) 
   { 
      cout << "Oshibka pri otkritii"<<endl; 
      exit(1); 
   } 
 
  nst=0; TStudent std; 
  while(true) 
  { 
    int  nwrt = fread( &std, sizeof(TStudent), 1, fl ); 
    if (nwrt!=1) break; 
  stud[nst]=std; 
   cout << stud[nst].fio << "  " << stud[nst].matem  
                              << "  " << stud[nst].oaip << endl; 
   nst++; 
  } 
  fclose(fl); 
} 
 
void resc()       // Вывести результат на экран 
{ 
 for (int i=0; i<nst; i++) 
  if (stud[i].oaip=='4')   
 
     cout << stud[i].fio << endl;  
} 
 
void resf()      // Вывести результат в файл 
{ 
char namet[30]; 
FILE *ft; 
 cout << "Vvedite imya faila" << endl; 
  cin >> namet; 
if ((ft = fopen(namet,"w"))==NULL) 
   { 
      cout << "Oshibka pri sozdanii "<<endl; 
      exit(1); 
   } 
 char s[80]; 
 for (int i=0; i<nst; i++) 
  if (stud[i].oaip=='4')  
   { 
   strcpy(s, stud[i].fio); 
    strcat(s, "\n");          // Добавление разделителя строк  
    fputs(s, ft); 
    } 
 fclose(ft); 
}
 
Текущее время: 23:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru