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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Amgalan
0 / 0 / 0
Регистрация: 15.01.2013
Сообщений: 7
#1

Запись структуры в файл - C++

26.01.2013, 21:58. Просмотров 523. Ответов 2
Метки нет (Все метки)

Задание заключается в том что бы не используя ofstream и ifstream создать файл и записать в него, данные с клавиатуры.
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
#include <stdio.h>
#include <conio.h>
#include <locale.h>
#include <iostream> 
#include <windows.h>
using namespace std;
void vvod(int n, int i );
struct data 
        {
        int day, year, month;
        };
struct disp
        {
        int p,s,i,f;
        };
struct stud
        {
        char fam [15],group[15];
        int facul,kurs;
        struct data a;
        struct disp b;
        }tabl[1000];    
void vvod(int c, int b )
{
for (b=0;b<c;b++)
    {
    cout<<"Введите Фамилию студента :"; 
    cin>>tabl[b].fam;
    cout<<"Введите факультет 1-технологический, 2-биохимии, 3-экономический :"; 
    cin>>tabl[b].facul;
    cout<<"Введите курс :"; 
    cin>>tabl[b].kurs;
    cout<<"Введите группу :"; 
    cin>>tabl[b].group;
    cout<<"Введите дату сдачи экзамена: день.месяц.год :"; 
    cin>>tabl[b].a.day>>tabl[b].a.month>>tabl[b].a.year;
    cout<<"Введите оценку по программированию :"; 
    cin>>tabl[b].b.p;
    cout<<"Введите оценку по социологии :"; 
    cin>>tabl[b].b.s;
    cout<<"Введите оценку по иностранному языку :"; 
    cin>>tabl[b].b.i;
    cout<<"Введите оценку по физике :"; 
    cin>>tabl[b].b.f;
     }
       for (b=0;b<c;b++)
                        {
          if((tabl[b].a.year==2010)&&
            (tabl[b].a.year==2010) &&
            ((tabl[b].a.month>6)||(tabl[b].a.month<8)) &&
            (tabl[b].b.p==5) &&
            (tabl[b].facul==1) && 
            (tabl[b].kurs==1))
            cout<<tabl[b].fam;
            cout<<"\n";
                        }
}                 
int main (void)
{setlocale(LC_ALL,"rus");
int i,n;
cout<<"Введите количество студентов :"; 
cin >>n; 
vvod(n,i); 
system ("PAUSE"); 
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.01.2013, 21:58     Запись структуры в файл
Посмотрите здесь:

C++ Запись структуры в файл.
Запись структуры в файл. C++
Запись структуры в файл C++
C++ запись структуры в файл
Запись структуры в файл. C++
Запись структуры в файл C++
C++ Запись структуры в файл
Запись структуры в файл C++
Запись структуры в файл C++
C++ Запись структуры в файл
C++ Запись структуры в файл
C++ Запись структуры в файл

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Issues
430 / 365 / 37
Регистрация: 06.08.2012
Сообщений: 961
26.01.2013, 23:38     Запись структуры в файл #2
ну например StreamWriter
или СИшным способом.
SeaMonster
15 / 15 / 0
Регистрация: 31.12.2012
Сообщений: 101
27.01.2013, 01:09     Запись структуры в файл #3
Не совсем понимаю, в чем смысл такого задания, но.
Если надо, то я бы тоже стал через сишный способ, только посмотрел бы в сторону не прямо того, что по ссылке, а fputc (побайтовая запись файла) и особенно fprintf( прямо печатаем в файл строку с не такими уж малыми возможностями тегов строки printf)

Написал пример
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include<stdio.h>
 
int main(){
 FILE* f1=fopen("txt_7.txt","wt"); /// создаем файл для записи. Если был старый, Затираем! это надо учесть, что именно такая запись затрет прежний. По ситуации это гуд или очень бэд...
 if(f1==NULL){printf("FILES not open!!!!");return 0;} ///Для порядка. Если вдруг ничего не открыли, то сообщаем и завершаемся.
 fprintf(f1,"Stroka1 %d \n",111); /// Пишем, демонстрация как ввести в строку произвольный int и символ перехода на следующую строку
 fprintf(f1,"Stroka2 ___ ! end"); /// Пишем следующую строку
 fclose(f1); // в принципе тут необязательно, операционка скорее всего и так уберет мусор после завершения программы, но для порядка - культурно закрываем файл.
/// Незакрытый - может аукнуться в программе, которая многое или/и много раз открывает, создастся максимальное число открытых файлов и новые перестанут открываться
return 0; // тоже для порядка
 
 
 
}
Это использует вообще только stdio.h и очень совместимо. В контрольном опыте создало файл с
Stroka1 111
Stroka2 ___ ! end

Добавлено через 1 минуту
Замечание. В общем той же самой древней и самой стандартной библиотекой вода-вывода чистого СИ можно и с клавиатуры ввести, но так как тебе запретили только функции для работы с Файлами - то ввод ничто не мешает писать как у тебя.

Добавлено через 7 минут
Добавка. Точно не помню, но вспомнил смутно. Может даже в этом простом случае незакрытие файла было бы не просто плохим стилем, а привело бы к тому, что система бы не записала файл окончательно, т.е. - код не сработал бы. Но повторяю, именно этот код проверен, он работает как ожидалось, так в принципе любой текст в файл записать можно.
Yandex
Объявления
27.01.2013, 01:09     Запись структуры в файл
Ответ Создать тему
Опции темы

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