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

Задача с файлами в с++ - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ удвоить вхождение каждого элемента списка. Элементы, какие входят в список больше двух раз изъять(удалить) http://www.cyberforum.ru/cpp-beginners/thread956258.html
удвоить вхождение каждого элемента списка. Элементы, какие входят в список больше двух раз изъять(удалить)
C++ WIN32_FIND_DATA Всем доброго дня! Помогите понять почему имя найденного файла выводится закорючками ? хочу проверить найден файл или нет, все ли правильно сделано ? #include <iostream> #include <string> #include <windows.h> #include <typeinfo> // для typeid() using namespace std; #include <process.h> // для exit() //#include <winbase.h> http://www.cyberforum.ru/cpp-beginners/thread956231.html
class::function():? C++
Добрый день! Что означает следующий код? (или по каким ключевым словам гуглить?) SocketServer::SocketServer(int Port) : ListeningSocket(-1), ClientSocket(-1), SocketPort(Port){ State = Socket_None; CreateSocket(); } где курсивом - члены класса SocketServer.
C++ Прочитать из файла и отредактировать
Собственно, читаю из файла потоком ifstream, вывожу через cout. Как сделать так, чтобы можно было прочитать файл, вывести с возможностью редактирования, затем сохранить (ну сохранить я пологаю можно так же через поток через ofstream).
C++ Датчиком случайных чисел сгенерируйте случайное натуральное число в интервале от 100 до 900. Определите большую цифру полученного числа http://www.cyberforum.ru/cpp-beginners/thread956184.html
Помигите пожалуйста! Очень нужно решение, если можно с пояснениями. Датчиком случайных чисел сгенерируйте случайное натуральное число в интервале от 100 до 900. Определите большую цифру полученного числа.
C++ Датчиком случайных чисел сгенерируйте два натуральных числа в интервале от 10 до 90 Помигите пожалуйста! Очень нужно решение, если можно с пояснениями. Датчиком случайных чисел сгенерируйте два натуральных числа в интервале от 10 до 90. Меньшее из них замените средним арифметическим, а большее - средним геометрическим этих чисел. Тест. Числа 36; 25. Результат. 30; 30.5. подробнее

Показать сообщение отдельно
Катенько
0 / 0 / 0
Регистрация: 17.09.2013
Сообщений: 15
17.09.2013, 14:28     Задача с файлами в с++
Ребята помогите решить задачу Вроде все правильно, но в самом конце не выводит данные из файла "File 1" а из файла 2 выводит. Где ошибка?

Полное условие:
В первом двоичном файле находится информация о группе студентов: фамилия, имя, курс, оценки по физике, математике и программированию. Во втором двоичном файле содержится информация о той же группе студентов: фамилия, имя, пол, год рождения. Фамилии в файлах отсортировать по алфавиту. Определить на каком курсе наибольший процент мужчин.

Кстати я не все пока сделала: сортировку и процент мужчин. Это делать не прошу, но если кому не жалко то сами понимаете). А пока самое главное вот этот чертов вывод((
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
#include <iostream>
#include <conio.h>
#include <string.h>
#include <stdio.h>
#include <tchar.h>
using namespace std;
 
int main () {
struct student1 {
    char fam[15];
    char name[15];
    int kurs,fiz,mat,prog;
};
 
struct student2 {
    char fam[15];
    char name[15];
    char pol[10];
    int god;
};
    FILE *in, *out;
    int i,n;
 
    //ÏðåîáðГ*çîâГ*Г*ГЁГҐ òåêñòîâîãî ГґГ*éëГ* file1.txt Гў äâîè÷Г*ûé file1.dat
    student1 a;
    int s=sizeof(a);
    out=fopen("file1.dat", "w+b");
    if ((in=fopen("file1.txt", "r")) != NULL)
    { cout<<"VVedite kol-vo studentov: "; cin>>n;
        while (fgets(a.fam,15,in) != NULL)
        {   for (i=1;i<=n;i++) 
            {  
            fgets(a.name, 15, in);
            cout<<"Vvedite danie: "<<endl;
            cout<<"fam= ";
            cin>>a.fam;
            cout<<"name= ";
            cin>>a.name;
            cout<<"Kurs= ";
            cin>>a.kurs;
            cout<<"Ocenki "; 
            cin>>a.fiz>>a.mat>>a.prog;
            fwrite(&a,s,1,out);
            }
        }
    }
//  fclose(in);
//  fclose(out);
 
 
    //ÏðåîáðГ*çîâГ*Г*ГЁГҐ òåêñòîâîãî ГґГ*éëГ* file2.txt Гў äâîè÷Г*ûé file2.dat
    student2 b;
    s=sizeof(b);
    out=fopen("file2.dat", "w+b");
    if ((in=fopen("file2.txt", "r")) != NULL)
    {  cout<<"VVedite kol-vo studentov: "; cin>>n;
        while (fgets(b.fam,15,in) != NULL)
        {   for (i=1;i<=n;i++) 
            {
            fgets(b.name, 15, in);
            cout<<"Vvedite danie: "<<endl;
            cout<<"fam= ";
            cin>>b.fam;
            cout<<"name= ";
            cin>>b.name;
            cout<<"Pol= ";
            cin>>b.pol;
            cout<<"God rozdeniya "; 
            cin>>b.god;
            fwrite(&b,s,1,out);
            }
        }
    }
//  fclose(in);
//  fclose(out);  
    
    rewind(in);
    rewind(out);
    cout<<"\n File 1: \n";
    i=1;
    while (fread((char *)(&a),sizeof(a),1,in))
       {
            cout<<i<<". "<<a.fam<<", "<<a.name<<", "<<a.kurs<<", "<<a.fiz<<", "<<a.mat<<", "<<a.prog<<endl;
            i++;
        }         
        
     rewind(in);
     rewind(out);
     cout<<"\n File 2: \n";
     i=1;
     while (fread((char *)(&b),sizeof(b),1,out))
       {
            cout<<i<<". "<<b.fam<<", "<<b.name<<", "<<b.pol<<", "<<b.god<<endl;
            i++;
        }      
    getch();
    return 0;
}
Добавлено через 12 минут
Немного передалала.
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
#include <iostream>
#include <conio.h>
#include <string.h>
#include <stdio.h>
#include <tchar.h>
using namespace std;
 
int main () {
struct student1 {
    char fam[15];
    char name[15];
    int kurs,fiz,mat,prog;
};
 
struct student2 {
    char fam[15];
    char name[15];
    char pol[10];
    int god;
};
    FILE *in, *out;
    int i,n;
 
    //ÏðåîáðГ*çîâГ*Г*ГЁГҐ òåêñòîâîãî ГґГ*éëГ* file1.txt Гў äâîè÷Г*ûé file1.dat
    student1 a;
    int s=sizeof(a);
    out=fopen("file1.dat", "w+b");
    if ((in=fopen("file1.txt", "r")) != NULL)
    { cout<<"VVedite kol-vo studentov: "; cin>>n;
        while (fgets(a.fam,15,in) != NULL)
        {   for (i=1;i<=n;i++) 
            {  
            fgets(a.name, 15, in);
            cout<<"Vvedite danie: "<<endl;
            cout<<"fam ";
            cin>>a.fam;
            cout<<"name ";
            cin>>a.name;
            cout<<"Kurs ";
            cin>>a.kurs;
            cout<<"Ocenka fiz "; 
            cin>>a.fiz;
            cout<<"Ocenka mat "; 
            cin>>a.mat;
            cout<<"Ocenka prog "; 
            cin>>a.prog;
            fwrite(&a,s,1,out);
            }
        }
    }
//  fclose(in);
//  fclose(out);
 
 
    //ÏðåîáðГ*çîâГ*Г*ГЁГҐ òåêñòîâîãî ГґГ*éëГ* file2.txt Гў äâîè÷Г*ûé file2.dat
    student2 b;
    s=sizeof(b);
    out=fopen("file2.dat", "w+b");
    if ((in=fopen("file2.txt", "r")) != NULL)
    {  cout<<"VVedite kol-vo studentov: "; cin>>n;
        while (fgets(b.fam,15,in) != NULL)
        {   for (i=1;i<=n;i++) 
            {
            fgets(b.name, 15, in);
            cout<<"Vvedite danie: "<<endl;
            cout<<"fam ";
            cin>>b.fam;
            cout<<"name ";
            cin>>b.name;
            cout<<"Pol ";
            cin>>b.pol;
            cout<<"God rozdeniya "; 
            cin>>b.god;
            fwrite(&b,s,1,out);
            }
        }
    }
//  fclose(in);
//  fclose(out);  
    
    rewind(in);
    rewind(out);
    cout<<"\n File 1: \n";
    i=1;
    while (fread((char *)(&a),sizeof(a),1,in))
       {
            cout<<i<<". "<<a.fam<<", "<<a.name<<", "<<a.kurs<<", "<<a.fiz<<", "<<a.mat<<", "<<a.prog<<endl;
            i++;
        }         
        
     rewind(in);
     rewind(out);
     cout<<"\n File 2: \n";
     i=1;
     while (fread((char *)(&b),sizeof(b),1,out))
       {
            cout<<i<<". "<<b.fam<<", "<<b.name<<", "<<b.pol<<", "<<b.god<<endl;
            i++;
        }      
    getch();
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 10:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru