Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
tube
0 / 0 / 0
Регистрация: 24.09.2008
Сообщений: 26
#1

Записывается мусор в файл

18.06.2009, 11:18. Просмотров 773. Ответов 6
Метки нет (Все метки)

Здравствуйте, есть следующий код для вывода дефолтных значений в файл:

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
#include <iostream>
#include <fstream>
 
using namespace std;
 
struct person {
    int account;
    char lastName[15];
    char firstName[15];
    float balance;
};
 
int main()
{
    ofstream outNameAge("nameage.txt", ios::out);
    if(!outNameAge) {
        cerr << "File cannot be openned\n";
        exit(1);
    }
 
    person blankPerson = {0, "", "", 10.5};
 
    for (int i=1; i<=10;i++) {
        outNameAge.write((char*)&blankPerson, sizeof(blankPerson));
        outNameAge << endl;
    }
 
   return 0;
}
В результате же выводится множество пробелов и в конце что-то вроде D (A в каждой строке.
Подскажите, пожалуйста, в чем здесь загвоздка.
Спасибо.

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.06.2009, 11:18
Ответы с готовыми решениями:

В файл записывается мусор
Добрый вечер! Почему при записи в бинарный файл, в файл записывается мусор и...

В файл записывается мусор. Подкорректировать код
Нужна помощь! В общем организована БД со структурами и целый перечень...

После выхода из функции в переменные записывается мусор
//Class1.h class Class2; class Class1 { public: double a1; char...

Результат не записывается в файл
Здравствуйте. Столкнулся с такой проблемой: после выполнения цикла (условия),...

Информация не записывается в файл
#include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;conio.h&gt; #include &lt;string&gt;...

6
FunDuck
688 / 379 / 51
Регистрация: 22.01.2009
Сообщений: 1,135
18.06.2009, 11:39 #2
Ты в файл записываешь структуру. У массива char размер 15, в то время как длина строки 0.
0
Lord_Voodoo
Супер-модератор
8608 / 2230 / 133
Регистрация: 07.03.2007
Сообщений: 10,816
Завершенные тесты: 1
18.06.2009, 11:44 #3
ИМХО, так получше работает:
C++
1
2
3
4
5
for (int i=1; i<=10;i++) {
        outNameAge<<blankPerson.account<<" "<<blankPerson.balance
        <<blankPerson.firstName<<" "<<blankPerson.lastName;
        outNameAge << endl;
    }
ваш вариант удивил: первый раз вижу, чтобы так кто-то структуру в файл писал
0
qazwsx
0 / 0 / 0
Регистрация: 11.10.2015
18.06.2009, 11:49 #4
Если ты хочешь смотреть содержимое файла в текстовом редакторе то правильная запись будет :
C++
1
2
3
4
 
for (int i=1; i<=10;i++) {
        outNameAge<<blankPerson.account<<" "<<blankPerson.lastName<<" "<<blankPerson.firstName<<" "<<blankPerson.balance<<endl;
    }
Если в 16-ном редакторе то тебе нужно сначало открыть файл в бинарном режиме :
C++
1
 ofstream outNameAge("nameage.txt", ios::binary);
а уже потом выводить так как ты выводишь
0
tube
0 / 0 / 0
Регистрация: 24.09.2008
Сообщений: 26
18.06.2009, 11:51  [ТС] #5
Цитата Сообщение от VoodooMan Посмотреть сообщение
ИМХО, так получше работает:

Код C++
1
2
3
4
5
6
7
*
* * for (int i=1; i<=10;i++) {
* * * * outNameAge<<blankPerson.account<<" "<<blankPerson.balance
* * * * <<blankPerson.firstName<<" "<<blankPerson.lastName;
* * * * outNameAge << endl;
* * }
*
Да, наверное) Просто изучаю по примерам в учебнике, пытаюсь следовать указаниям)
0
Lord_Voodoo
Супер-модератор
8608 / 2230 / 133
Регистрация: 07.03.2007
Сообщений: 10,816
Завершенные тесты: 1
18.06.2009, 11:54 #6
tube, интересно глянуть на те указания, что вас сподвигли на такой код...
0
tube
0 / 0 / 0
Регистрация: 24.09.2008
Сообщений: 26
18.06.2009, 11:55  [ТС] #7
Всем спасибо, буду пробовать обычным выводом, без write.

Цитата Сообщение от VoodooMan Посмотреть сообщение
tube, интересно глянуть на те указания, что вас сподвигли на такой код...
Я извиняюсь за долгий ответ. Это учебник Дейтелов - Как программировать на С++, глава 14, стр. 754 - 755.
0
18.06.2009, 11:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.06.2009, 11:55

Структура не записывается в файл
Всем привет. Пытаюсь, значит, организовать работу с файлом в C++. Надо записать...

Не записывается строка в файл
Не записывается строка в файл в чем может быть причина ? fstream...

Не записывается в файл строка
Не могу понять, в чем проблема? Чтение из файла проходит успешно, а вот запись...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru