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

Чтение из текстового файла массив структур - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Волшебный мост http://www.cyberforum.ru/cpp-beginners/thread960491.html
Крестьянин, возвращаясь с ярмарки, увидел на мосту странную картину. Какой-то человек сначала считал деньги в кошельке, затем бросал в реку несколько монеток, бежал на другой конец моста, снова считал деньги в кошельке, и опять бросал несколько монеток и шел на другой конец моста. Наконец, пересчитав свои деньги, он явно обрадовался и отправился в дальнейший путь. – Что ты делал? Зачем ты бросал...
C++ Двухмерный массив (заполнить змейкой квадратную матрицу) Требуется заполнить змейкой квадратную матрицу так, как показано на рисунке справа: заполнение происходит с единицы из левого верхнего угла и заканчивается в правом нижнем числом N^2, где N – порядок матрицы. Входные данные Во входном файле INPUT.TXT задано натуральное число N – размер квадратной матрицы (N<=100). Выходные данные В выходной файл OUTPUT.TXT выведите матрицу, заполненную... http://www.cyberforum.ru/cpp-beginners/thread960487.html
C++ Работа с матрицей С++ Visual Studio
Люди, помогите сделать задание с матрицей. Вобщем: Дана матрица натуральных чисел (Xij) порядка m*n. Упорядочить столбцы матрицы за неспаданием (это вообще непонятно, что имеется ввиду) максимальных элементов столбцов. Добавлено через 3 часа 41 минуту Обьясните хотя бы как сделать: Упорядочить столбцы матрицы за неспаданием)) Меня ведь завтра порвут... :(
Работа с файлами C++
Задача программы такова - пользователь вводит строку адреса , например C:\blablabla и программа считывает все размеры файлов хранящихся в этой и всех вложенных папках, определяет дату создания и права доступа к файлам. Подскажите в какои библиотеке есть функционал для этого?
C++ Найти наибольший общий делитель чисел http://www.cyberforum.ru/cpp-beginners/thread960461.html
Найти наибольший общий делитель чисел M и N используя метод Эйлера: если M делится на N, то НОД (N, M) = N, иначе НОД (N, M) = НОД (M % N, N).Решить задачу двумя способами – с применением рекурсии и без нее. Помогите пожалуйста.
C++ задачка на объединения с клавиатуры вводится комплексное число и натуральное число n. нужно вычислить корень n-ой степени из этого комплексного числа. подробнее

Показать сообщение отдельно
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
25.09.2013, 21:29     Чтение из текстового файла массив структур
Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <string>
#include <fstream>
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
 
using namespace std;
struct lol
{
    char FIO[50];
    char diz[30];
    int  post;
    char pol;
} zp;
 
void input(FILE *);
void show ();
void dop (FILE *, char* n);
void search(char* n);
FILE *f;
 
int main ()
{
    setlocale(LC_ALL,"Rus");
    
    char c;
    int n;
    char str[50],ctr[50];
    FILE *f;
    
    f=fopen("base.dat","r");
    c=' ';
    while (c!='0')
    {
        system("cls");
        cout<<"1-create file\n";
        cout<<"2-show file\n";
        cout<<"3-app file \n";
        cout<<"4-search \n";
        cout<<"5-status of patients \n";
        cout<<"0-exit";
        c=getch();
        switch (c)
        { 
            case '1':input(f);break;
            case '2' :show();break;
            case '3':system("cls");cout<<"Введите фамилию больного"<<endl; cin>>ctr; dop(f,ctr);break;
            case '4':system("cls");cout<<"Введите фамилию больного"<<endl; cin>>str;search(str);break;
            case '0' : return 0;
            default : cout<<" error ";return 0;
        }
    }
    system("pause");
}
 
void input (FILE *f)
{
    ifstream F;
    lol zp;
    char filename[30];
    
    f = fopen("base.dat","wb");
    printf("\nВведите имя файла с данными\n");
    scanf("%s", filename);
    F.open (filename, ios::in);
    if(!F.is_open()) 
        cout<<"can't open this file\n";
    while (true)
    {
        F >> zp.FIO;
        if (!F) break;
        F >> zp.diz;
        F >> zp.post;
        F >> zp.pol;
        fwrite(&zp, sizeof(zp), 1, f);
    }
    fclose(f);
    F.close();
}
 
void show ()
{
    int i;
    system("cls");
    f=fopen("base.dat","rb");
    i=1;
    printf("\n   --------------------------------------------------\n");
    printf("   |    ФИО    |   Диагноз    |Пол|  Дата поступления |\n");
    printf("   ------------+--------------+---+-------------------\n");
    
    while (fread(&zp, sizeof(zp), 1, f))
    { 
        printf("%3d   %3s        %4s         %c          %3d", i, zp.FIO, zp.diz, zp.pol, zp.post);
        printf("\n   --------------------------------------------------\n");
        i++;
    }
    i=0;
    getch();
}
 
void dop (FILE *f,char* n)
{   
    int i;
    bool b;
    FILE *j;
    f=fopen("base.dat","rb+");
    system("cls");
    setlocale(LC_ALL,"Rus");
    i=0;
    while (fread(&zp, sizeof(zp),1,f))
    {char* r =zp.FIO;
    if (strcmp(n,r) == 0)
    {
        fseek(f,i*sizeof(zp),SEEK_SET);
        printf("\n Введите информацию о пациенте \n");
        printf("\n ФИО: ");
        scanf("%s",zp.FIO);
        printf("Диагноз: ");
        scanf("%s",&zp.diz);
        printf("Пол: ");
        scanf("%s",&zp.pol);
        printf ("Дата поступления: ");
        scanf("%d",&zp.post);
        fwrite(&zp,sizeof(zp),1,f);
        fclose(f);
    }
    else {i=i+1;}
    }
    }
    void search (char* n)
    {f=fopen("base.dat","rb");
    while (fread(&zp, sizeof(zp),1,f))
    {char* r =zp.FIO;
    if (strcmp(n,r)==0)
    { printf(" %s    %s   %s    %3d",zp.FIO,zp.diz,zp.pol,zp.post);
    printf("      \n--------------------------------------------------\n");
    }
    }
    fclose(f);
    getch();
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru