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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Нарушение прав доступа при записи по адресу http://www.cyberforum.ru/cpp-beginners/thread1140272.html
Как исправить ошибку?? Первый этап обработки исключения по адресу 0x0F484AF5 (msvcr110d.dll) в ConsoleApplication16.exe: 0xC0000005: нарушение прав доступа при записи по адресу 0xCDCDCDCD. Необработанное исключение по адресу 0x0F484AF5 (msvcr110d.dll) в ConsoleApplication16.exe: 0xC0000005: нарушение прав доступа при записи по адресу 0xCDCDCDCD. #include <stdio.h> #include <locale.h>...
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 stream insertiomn operator<<.The stream insertion and stream extraction operators also can be overloaded to perform input and output for user-defined types like an object.". Необходимо заменить в...
Двумерная матрица. Разместить сначала положительные элементы, а за ними - все остальные C++
Помогите пожалуйста написать программу с помощью void f(); В каждой строке матрицы В (4,5) разместить сначала положительные элементы, а за ними - все остальные.
C++ Ввод одномерного массива с клавиатуры http://www.cyberforum.ru/cpp-beginners/thread1140213.html
Добрый день! Ребят, надо написать курсовую по С++.Есть задание-ввести одномерный массив с помощью клавиатуры и случайным образом....Пытался написать сам, выдает ошибку..гляньте код пожалуйста #include "stdafx.h" #include <iostream> #include <conio.h> #include <clocale> using namespace std; const int X=10;// опрелеление массива через константу int main () {
C++ Отсортировать столбцы, в которых нет нулей, по убыванию Что-то здесь не так. Дан массив, заполненный случайными числами, порядка n*n. Отсортировать столбцы, в которых нет нулей, по убыванию #include"stdafx.h" #include"iostream" #include"ctime" usingnamespacestd; void main() { подробнее

Показать сообщение отдельно
Iloyd
0 / 0 / 0
Регистрация: 06.04.2014
Сообщений: 3
06.04.2014, 13:41     Некорректный вывод из структуры в файл
Здравствуйте! Нужно вывести в файл фамилию, имя и отчество студента, которые я ранее ввожу русскими буквами. В консоль вывод нормальный, а вот при выводе в файл русских букв выводятся "левые" символы. Код:
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;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 02:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru