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

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

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

вывод тип int в файл, система ввода/вывода - C++

30.06.2011, 00:52. Просмотров 299. Ответов 0
Метки нет (Все метки)

Уважаемые форумчане, помогите пожалуйста! У меня есть задание: создать базу данных студентов, вывести на консоль, записать данные в файл. В общем, работа на ввод-вывод, всё работает, кроме одного момента! В созданном файле, куда должны записываться данные о студентах, поля типа "char"(имя, фамилие) записываются нормально, а вот вместо полей типа "int"(курс, номер студ. билета) какие-то иероглифы (( Пишу в VisualStudio2008. Нужно ли как-то преобразовывать int в char при записи в файл? Или в чём может быть проблема? Подскажите, пожалуйста, очень нужно!
Вот код:
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
#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include <conio.h>
#include <fstream>
#include <math.h>
 
using namespace std;
 
struct file 
{
    char name[10];
    char surname[25];
    unsigned long student_card;
    char birthday[11];
    int course;
};
 
class Student 
{public:
    friend ostream &operator <<(ostream &, const Student &obj);   
    friend istream &operator >> (istream &, Student &obj);
    friend fstream& operator >> (fstream& input, Student& obj);
    friend fstream& operator << (fstream& output, const Student& obj);
 
    file st; 
    Student()
        {
            st.name[0]='\0';
            st.surname[0]='\0';
            st.student_card=0;
            st.birthday[0]='\0';
            st.course=0;
        }
 
 
        int Method(fstream &input)
            {
            int count=0;
            file ss;
            int p;
    input.open("C:\Documents and Settings\Администратор\Мои документы\Visual Studio 2008\Projects\Kyrsovaja\data.txt", ios::in);
    input.seekg(0, ios::end);
    p = input.tellg();
    input.seekg(0, ios::beg);
    while(p > input.tellg()) {
    input.read((char*)&this->st, sizeof(this->st));
    if((this->st.course == 3) && (this->st.birthday[4]>'5' ) && (this->st.birthday[4] <'9'))
        count++;
    }
            return count;
        }
};
 
ostream &operator<<(ostream &output, const Student &obj)
{
 
   output << "\n" << setw(10) << setiosflags(1) << obj.st.name;
   output << setw(15) << setiosflags(1) << obj.st.surname;
   output << setw(1) << setiosflags(1) << obj.st.course;
   output << setw(6) << setiosflags(1) << obj.st.student_card;
   output << setw(11) << setiosflags(1) << obj.st.birthday;
 
     return output;
}
 
 
istream &operator >> (istream &input, Student &obj)
{
    cout << "Vvedite imja (max 10 symvolov): \t";   input >> obj.st.name;
    cout << "Vvedite familijy (max 15 symvolov): \t";   input >> obj.st.surname;
    cout << "Vvedite kyrs [1...6]: \t";     input >> obj.st.course;
    cout << "Vvedite nomer stydencheskogo bileta (maks6 symvolov): \t";     input >> obj.st.student_card;
    cout << "Vvedite daty rozhdenija (dd.mm.gggg): ";       input >> obj.st.birthday;
 
    return input;
}
 
fstream& operator >> (fstream& input, Student& obj) {
   input.read((char*)&obj.st, sizeof(obj.st));
   return input;
}
fstream& operator << (fstream& output, const Student& obj) {
   
   output.write((char*)&obj.st, sizeof(obj.st));
   return output;
}
 
 
int _tmain(int argc, _TCHAR* argv[])
{
int N, i;
cout << "Vvedite kolichestvo stydentov: ";
    cin >> N;
 
    Student object;
    fstream pf;
 
    cout << "Vvedite informacijy o studentah:";
    pf.open("C:\Documents and Settings\Администратор\Мои документы\Visual Studio 2008\Projects\Kyrsovaja\data.txt", ios::out);
    for(int i=0; i<N; i++){
    cout << "\nStudent " << (i+1) << endl;
    cin >> object;
    pf << object;
    }
    pf.close();
 
    cout << "\nBasa stydentov:\n";
    cout << setw(10) << setiosflags(1) << "Imja";
    cout << setw(15) << setiosflags(1) << "Familie";
    cout << setw(1) << setiosflags(1) << "Kyrs";
    cout << setw(6) << setiosflags(1) << "Studencheskij bilet";
    cout << setw(11) << setiosflags(1) << "Data rozhdenija";
   
    pf.open("C:\Documents and Settings\Администратор\Мои документы\Visual Studio 2008\Projects\Kyrsovaja\data.txt", ios::in);
    for(i=0; i<N; i++) {
    pf >> object;
    cout << object;
    }
    pf.close();
 
    int k = object.Method(pf);
    pf.close();
    cout << "\n\nKolichestvo stydentov, rozhdennuh letom = " << k << endl;
 
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.06.2011, 00:52     вывод тип int в файл, система ввода/вывода
Посмотрите здесь:

C++ Потоки ввода/вывода: дважды скопировать исходный файл
C++ clrscr(); не определен данный тип и const MAX_ELEMENTS = 4; отсутсвует тип int когда я его туда вписываю у меня больше ошибок вылазит
C++ Класс Int имитирующий встроенный тип int
Перевод потока из файлового ввода/вывода в консольный ввод/вывод C++
Открыть файл для ввода и вывода C++
C++ Система ввода/вывода
C++ error C2664: itoa: невозможно преобразовать параметр 1 из 'int *' в 'int' + запись в файл
Низкоуровневый ввод-вывод. Как с помощью функции write записать в файл тип int? C++
C++ Зачем преобразовывать itsVal в int, если эта переменная и так объявлена как тип int
Добавить в программу ввода и вывод в файл C++
Потоки ввода/вывода. Сохранение информации в файл и ее считывание оттуда C++
C++ Ошибка при работе с потоками ввода (вывода) в файл (из файла)

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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