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

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

Восстановить пароль Регистрация
 
EvilCLR
0 / 0 / 0
Регистрация: 02.05.2013
Сообщений: 25
14.07.2013, 15:47     Запись Структуры в файл #1
Здравствуйте пытаюсь записать массив структур в файл и не получается.В Файле содержится иероглифы.Помогите пожалуйста.
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
#include <iostream>
#include <stdio.h>
#include <cstdlib>
 
using namespace std;
 
struct students
{
  char name[64];
  int age;
 
};
 
void fill_struct(students *stud_1,int n)
{
    for(int i=0; i<n ; i++)
 {
  cout << "Write name\n";
  cin  >> stud_1[i].name ;
 
  cout << "Write age\n";
  cin  >> stud_1[i].age ;
 
 
 
 
 }
 
}
void Insertion_Sort(students *stud_1,int n)
{
    for(int i=1; i<n ;i++){
       for(int j=i; j>0 && stud_1[j].age< stud_1[j-1].age; j--)
 
     swap(stud_1[j].age,stud_1[j-1].age);
    }
}
 
void show_struct(students *stud_1,int n)
{
    for(int i=0; i<n ;i++)
 {
 
  cout << stud_1[i].name<<" ";
  cout << stud_1[i].age<<" ";
  cout<<"\n";
 
 }
 
}
void input(students *stud_1,int n)
{  FILE *file;
    if ((file = fopen("struct_file.txt","w")) == NULL)
     cout<<"Error";
     else
      fwrite(stud_1,sizeof(students),n,file);
 
 
 
 
   fclose(file);
}
 
 
int main()
{
   int n;
   cin >> n;
 
  students *stud_1 = new  students[n];
 
 
 
 
  fill_struct(stud_1,n);
  input(stud_1,n);
  Insertion_Sort(stud_1,n);
  show_struct(stud_1,n);
 
 
 
 
    delete []stud_1;
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.07.2013, 15:47     Запись Структуры в файл
Посмотрите здесь:

Запись структуры в файл. C++
C++ запись структуры в файл
Запись структуры в файл C++
Запись структуры в файл C++
Запись структуры в файл C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
14.07.2013, 16:46     Запись Структуры в файл #2
Цитата Сообщение от EvilCLR Посмотреть сообщение
fwrite
fwrite предназначен для записи в бинарный файл, а это и есть иероглифы, если открыть в блокноте.
Чтобы создать текстовый файл, используй fprintf (а также можно fputs fputc и.т.д.)
кстати, довольно странно смешивать cin, cout и с другой стороны fopen/fwrite

Добавлено через 3 минуты
C++
1
2
3
4
5
6
7
8
void input(students *stud_1,int n)
{  FILE *file;
    if ((file = fopen("struct_file.txt","w")) == NULL)
     cout<<"Error";
     else
      fprintf(file, "%s %d\n", stud_1->name, stud_1->age);
   fclose(file);
}
Bend3r
 Аватар для Bend3r
142 / 129 / 17
Регистрация: 29.07.2012
Сообщений: 681
14.07.2013, 16:55     Запись Структуры в файл #3
Либо можно через стандарт:
C++
1
2
f << stud[1].name; //запись
f >> stud[1].name; //считывание
kuziashagrath
1 / 1 / 0
Регистрация: 30.07.2012
Сообщений: 49
14.07.2013, 16:56     Запись Структуры в файл #4
А вот такой вопрос. Насколько я понимаю, Вы хотите использовать код С++, а не С. Скажите, а разве нельзя открыть файл вот в таком виде:
C++ (Qt)
1
ifstream file_containg_students("C:\\students")
C++ (Qt)
1
file_containg_students<<stud[1].name<<" " <<age<<endl;
EvilCLR
0 / 0 / 0
Регистрация: 02.05.2013
Сообщений: 25
14.07.2013, 18:20  [ТС]     Запись Структуры в файл #5
Я понимаю что глупо мешать одно с другим но не знаю я ещё пока с++ вариант вот и приходится пока так.Спасибо вам за помощь
kuziashagrath
1 / 1 / 0
Регистрация: 30.07.2012
Сообщений: 49
14.07.2013, 18:52     Запись Структуры в файл #6
C++ (Qt)
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
#include <iostream>
#include <fstream>
 
#include <conio.h>
 
using namespace std;
 
struct students
{
    string name;
    int age;
};
 
 
 
int main()
{
    students Student;
    ofstream file_results("results");
 
    while(_getch()!=27)
    {
        cout<<"Enter the name of student please!"<<endl;
        cin>> Student.name;
        cout<<"Enter the age of student please!"<<endl;
        cin>> Student.age;
 
        cout<< "Student name is: " << Student.name<<endl;
        cout<< "Age of student is" << Student.age<<endl;
        file_results << "Student name is: "<<Student.name<<endl;
        file_results << "Age of student is: "<<Student.age<<endl;
    }
    cout<<"thank you very much for using my program!"<<endl;
}
просто запись в файл в С++ можно описать таким вот кодом. или Вам еще нужно отсортировать по возрастанию всех студентов, так?
Yandex
Объявления
14.07.2013, 18:52     Запись Структуры в файл
Ответ Создать тему
Опции темы

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