Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Нарушение прав доступа при записи по адресу http://www.cyberforum.ru/cpp-beginners/thread1140272.html
Как исправить ошибку?? Первый этап обработки исключения по адресу 0x0F484AF5 (msvcr110d.dll) в ConsoleApplication16.exe: 0xC0000005: нарушение прав доступа при записи по адресу 0xCDCDCDCD....
C++ Найти в массиве максимальное значение среди чисел, не кратных 9 #include <stdio.h> #define N 3 void main() { int a; int i, j, max; for (i = 0; i<N; i++) scanf("% d", &a); max = 0; j = 0; for(i=0; i<N; i++) http://www.cyberforum.ru/cpp-beginners/thread1140241.html
C++ Запись и чтение в тестовый файл
Изучить запись и чтение в тестовый файл. Создаете текстовый файл example.txt, содержащий текст "C++ is able to input and output the built - in data types using the stream extraction operator>>and the...
Двумерная матрица. Разместить сначала положительные элементы, а за ними - все остальные C++
Помогите пожалуйста написать программу с помощью void f(); В каждой строке матрицы В (4,5) разместить сначала положительные элементы, а за ними - все остальные.
C++ Ввод одномерного массива с клавиатуры http://www.cyberforum.ru/cpp-beginners/thread1140213.html
Добрый день! Ребят, надо написать курсовую по С++.Есть задание-ввести одномерный массив с помощью клавиатуры и случайным образом....Пытался написать сам, выдает ошибку..гляньте код пожалуйста...
C++ Отсортировать столбцы, в которых нет нулей, по убыванию Что-то здесь не так. Дан массив, заполненный случайными числами, порядка n*n. Отсортировать столбцы, в которых нет нулей, по убыванию #include"stdafx.h" #include"iostream" #include"ctime"... подробнее

Показать сообщение отдельно
Iloyd
0 / 0 / 0
Регистрация: 06.04.2014
Сообщений: 3

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

06.04.2014, 13:41. Просмотров 187. Ответов 0
Метки (Все метки)

Здравствуйте! Нужно вывести в файл фамилию, имя и отчество студента, которые я ранее ввожу русскими буквами. В консоль вывод нормальный, а вот при выводе в файл русских букв выводятся "левые" символы. Код:
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;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru