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

Некорректный вывод из структуры в файл - C++

Восстановить пароль Регистрация
 
Iloyd
0 / 0 / 0
Регистрация: 06.04.2014
Сообщений: 3
06.04.2014, 13:41     Некорректный вывод из структуры в файл #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
#include <iostream>
using namespace std;
#include <fstream>
#include <string>
#include <iomanip>
struct tabl{    
    char Number[15];
    char LastName[12];
    char FirstName[12];
    char FatherName[20];
    char Sex;
    int age;
    int kurs;   
};
int main(){     
    setlocale(1, "russian");
    tabl *students; 
    char name[10];
    puts("Введите имя файла, куда будут заноситься введенные вами данные о студентах: ");
    cin.getline(name, 10);
    ofstream file(name);
    int n;
    bool flag=false;
    puts("Введите количество студентов, данные о которых хотите ввести: ");
    cin>>n; 
    students=new tabl[n];   
    puts("Поочередно вводите данные о студентах(Длина имени, фамилии или отчества не должна превышать 12 символов!): ");
    for(int i=0; i<n; i++){     
        cout<<"Введите номер студенческого билета "<<i+1<<" студента: "<<endl;
        getchar();
        cin.getline(students[i].Number, 15);
 
        cout<<"Введите фамилию "<<i+1<<" студента: "<<endl;
        cin.getline(students[i].LastName, 12);
        
        cout<<"Введите имя "<<i+1<<" студента: "<<endl;
        cin.getline(students[i].FirstName, 12);
        
        cout<<"Введите отчество "<<i+1<<" студента: "<<endl;
        cin.getline(students[i].FatherName, 20);
        
        cout<<"Введите пол(M/Ж) "<<i+1<<" студента: "<<endl;
        cin>>students[i].Sex;
        
        cout<<"Введите возраст "<<i+1<<" студента: "<<endl;
        cin>>students[i].age;
        
        cout<<"Введите номер курса на котором обучается "<<i+1<<" студент: "<<endl;
        cin>>students[i].kurs;
        if(flag==false){
            file<<"№ студенческого"<<setw(15)<<"Фамилия"<<setw(15)<<"Имя"<<setw(15)<<"Отчество"<<setw(15)<<"Пол"<<setw(15)<<"Возраст"<<setw(15)<<"№ курса"<<endl;
            flag=true;
            cout<<"№ студенческого"<<setw(15)<<"Фамилия"<<setw(15)<<"Имя"<<setw(15)<<"Отчество"<<setw(15)<<"Пол"<<setw(15)<<"Возраст"<<setw(15)<<"№ курса"<<endl;
        }
        system("chcp 1251");
        file<<students[i].Number<<setw(30-strlen(students[i].Number))<<students[i].LastName<<setw(15)<<students[i].FirstName<<setw(15)<<students[i].FatherName<<setw(15)<<students[i].Sex<<setw(15)<<students[i].age<<setw(15)<<students[i].kurs<<endl;
        cout<<"----------------------<<<Cледущий студент>>>-----------------------------"<<endl;
    }
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.04.2014, 13:41     Некорректный вывод из структуры в файл
Посмотрите здесь:

Запись/вывод структуры в файл C++
Структуры, некорректный вывод C++
C++ С++ вывод структуры в файл
Вывод структуры в файл. Исправить ошибки в коде C++
C++ Некорректный вывод в файл
Некорректный вывод в файл C++
Вывод структуры в файл C++ C++
Вывод структуры в файл C++ C++

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

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

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