Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.69/29: Рейтинг темы: голосов - 29, средняя оценка - 4.69
392 / 284 / 53
Регистрация: 26.12.2009
Сообщений: 874
1

Не выводится информация в файл через fstream

04.02.2011, 18:03. Показов 5379. Ответов 55
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <fstream>
#include <iostream>
 
using namespace std;
 
int main()
{
   fstream fio( "input.txt" );
   int a;
   fio >> a;
   fio.open( "output.txt" );
   fio << a << endl;
   
   return 0;
}
не выводит в файл??
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.02.2011, 18:03
Ответы с готовыми решениями:

Информация не сохраняется файл через fstream
Если создать объект типа fstream, то в файл почему-то ничего не записывается (в отличие от...

Не выводится информация в файл
Всем доброго времени суток. У меня небольшая просьба,помогите оприделтить наличие ошибок...

Неверно выводится информация через массив
Тащем то вот текст, кусок проги, должен по всей логике выводить на каждой строчке фамилию, имя,...

Определить, куда выводится информация - в файл или на экран?
Write(A,B)

55
0 / 0 / 3
Регистрация: 29.05.2014
Сообщений: 83
11.06.2014, 03:12 21
Author24 — интернет-сервис помощи студентам
[]https://vk.com/albums180239427?z=photo180239427_332092947%2Fphotos180239427[/] <--- начало
[]https://vk.com/albums180239427?z=photo180239427_332092948%2Fphotos180239427[/]<--- пред конец
[]https://vk.com/albums180239427?z=photo180239427_332092950%2Fphotos180239427[/]<-- конец

Добавлено через 43 секунды
Блин как тут вылодить нормально фотку.
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
11.06.2014, 03:16 22
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void read(void)
{
    setlocale(LC_ALL, "RUS");
    ifstream file("FILMS.TXT");
    name temp;
    while(file.read((char*)&temp, sizeof(name)))
    {
        cout << temp.regicer << endl;
        cout << temp.films << endl;
        cout << temp.god << endl;
        cout << temp.dollar << endl;
   }
}
Добавлено через 51 секунду
Цитата Сообщение от Ринат Посмотреть сообщение
Блин как тут вылодить нормально фотку.
Не нужно уже. А вообще, расширенный режим (внизу кнопка), управление вложениями, загрузить и т.д.
0
0 / 0 / 3
Регистрация: 29.05.2014
Сообщений: 83
11.06.2014, 03:19 23
Цитата Сообщение от alsav22 Посмотреть сообщение
void read(void)
{
* * setlocale(LC_ALL, "RUS");
* * ifstream file("FILMS.TXT");
* * name temp;
* * while(file.read((char*)&temp, sizeof(name)))
* * {
* * * * cout << temp.regicer << endl;
* * * * cout << temp.films << endl;
* * * * cout << temp.god << endl;
* * * * cout << temp.dollar << endl;
* *}
}
Тут приводится функция чтения элементов труктуры я правельно понял? и таким же методом можно сделать ввод в файл?
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
11.06.2014, 03:22 24
Вот так, приблизительно, если три записи (структуры) делать:
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
#include <iostream>
#include <fstream>
#include <string>
#include <stdio.h>
using namespace std;
 
struct name{//глобальная структура к которой обращается функция ввода
char regicer[100];
char films[100];
int god;
int dollar;
}; name lenta[40];
 
 
 
void vvod(void)//Функция ввода по сути которая должна возвращать переменные в структуру.
{
    setlocale(LC_ALL, "RUS");
    int i;
    for(i = 0; i < 3; i++)
    {
        cout<<"ВВедите режисера: ";
        cin>>lenta[i].regicer;
        cout<<"Введите название фильма: ";
        cin>>lenta[i].films;
        cout<<"Введите год выпуска фильма: ";
        cin>>lenta[i].god;
        cout<<"Введите стоимость: ";
        cin>>lenta[i].dollar;
    }
}
 
void writes(void)
{
    setlocale(LC_ALL, "RUS");
    ofstream file("FILMS.TXT");
    for (int i = 0; i < 3; ++i)
        file.write((char *) &lenta[i], sizeof(name));
    file.close();
}
 
void read(void)
{
    setlocale(LC_ALL, "RUS");
    ifstream file("FILMS.TXT");
    name temp;
    while(file.read((char*)&temp, sizeof(name)))
    {
        cout << temp.regicer << endl;
        cout << temp.films << endl;
        cout << temp.god << endl;
        cout << temp.dollar << endl;
   }
   file.close();
}
 
int main()
{
    vvod();
    writes();
    read();
    
    return(0);
}
1
0 / 0 / 3
Регистрация: 29.05.2014
Сообщений: 83
11.06.2014, 03:22 25
C++
1
file<<"Режжисер  "<<"Фильм  "<<"Год  "<<"Цена  "<<endl;
я ввел для понятия что он выводит.
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
11.06.2014, 03:24 26
Цитата Сообщение от Ринат Посмотреть сообщение
я ввел для понятия что он выводит.
Файл не для того, чтобы его в блокноте разглядывать (тем более записанный в бинарном режиме). При выводе на экран нужно добавлять к данным из файла.
1
0 / 0 / 3
Регистрация: 29.05.2014
Сообщений: 83
11.06.2014, 03:45 27
Так по данному примеру, данные выводит, но сама запись так же осталась на том же уровне записало только начало. Да и самый интересный момент то что запись идет как бы через endl те как я вводил по строкам так и вывел, а по идее должен разбить на столбцы как я изначально выводил
Цитата Сообщение от Ринат Посмотреть сообщение
file<<"Режжисер *"<<"Фильм *"<<"Год *"<<"Цена *"<<endl;
Добавлено через 9 минут
Все понял в чем фишка вывода на экран, просто надо без endl в функции чтения и вывода cout.

Добавлено через 7 минут
Вот как получается:
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
#include <iostream>
#include <fstream>
#include <string>
#include <stdio.h>
using namespace std;
 
struct name{//глобальная структура к которой обращается функция ввода
char regicer[100];
char films[100];
int god;
int dollar;
}; name lenta[40];
 
 
 
void vvod(void)//Функция ввода по сути которая должна возвращать переменные в структуру.
{
    setlocale(LC_ALL, "RUS");
    int i;
    for(i = 0; i < 3; i++)
    {
        cout<<"ВВедите режисера: ";
        cin>>lenta[i].regicer;
        cout<<"Введите название фильма: ";
        cin>>lenta[i].films;
        cout<<"Введите год выпуска фильма: ";
        cin>>lenta[i].god;
        cout<<"Введите стоимость: ";
        cin>>lenta[i].dollar;
    }
}
 
void writes(void)
{
    setlocale(LC_ALL, "RUS");
    ofstream file("FILMS.TXT");
    for (int i = 0; i < 3; ++i)
        file.write((char *) &lenta[i], sizeof(name));
    file.close();
}
 
void read(void)
{
    setlocale(LC_ALL, "RUS");
    ifstream file("FILMS.TXT");
    name temp;
    while(file.read((char*)&temp, sizeof(name)))
    {
        cout << temp.regicer<<"  "<<temp.films<<"  "<<temp.god<<"  "<<temp.dollar<<endl;
 
   }
   file.close();
}
 
int main()
{
    vvod();
    writes();
    read();
 
    return(0);
}
Добавлено через 39 секунд
Вот только запись в файл не так8(.
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
11.06.2014, 15:36 28
Цитата Сообщение от Ринат Посмотреть сообщение
Вот только запись в файл не так8
Правильность записи проверяется правильностью вывода. Если вывод такой как нужно, то и запись значит правильная.
Цитата Сообщение от alsav22 Посмотреть сообщение
Файл не для того, чтобы его в блокноте разглядывать (тем более, записанный в бинарном режиме).
0
0 / 0 / 3
Регистрация: 29.05.2014
Сообщений: 83
11.06.2014, 17:59 29
Я заметил ошибку для цикла думал поможет но не помогло, в функции write
Цитата Сообщение от Ринат Посмотреть сообщение
for (int i = 0; i < 3; ++i)
* * * * file.write((char *) &lenta[i], sizeof(name));
* * file.close();
нету {}
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
11.06.2014, 18:03 30
Цитата Сообщение от Ринат Посмотреть сообщение
нету {}
Всё там правильно. Проблема в чём? Понятно объясните.
0
0 / 0 / 3
Регистрация: 29.05.2014
Сообщений: 83
11.06.2014, 18:06 31
ну на сколько я знаю циклы они пишутся так for(i=0,i<=3,i++){
тут тело цикла
}
0
0 / 0 / 3
Регистрация: 29.05.2014
Сообщений: 83
11.06.2014, 18:12 32
Вот вложил файл результата программы.
Миниатюры
Не выводится информация в файл через fstream  
0
0 / 0 / 3
Регистрация: 29.05.2014
Сообщений: 83
11.06.2014, 18:12 33
Те считывает нормально
но не записывает.
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
11.06.2014, 18:14 34
Цитата Сообщение от Ринат Посмотреть сообщение
ну на сколько я знаю циклы они пишутся так for(i=0,i<=3,i++){
тут тело цикла
}
Не отвлекайтесь, скобки не всегда нужны. Правильно там всё (откуда взялось <= ? Просто <).
Цитата Сообщение от Ринат Посмотреть сообщение
Вот вложил файл результата программы.
И? Что записали, то и вывелось. Что не так?
0
0 / 0 / 3
Регистрация: 29.05.2014
Сообщений: 83
11.06.2014, 18:15 35
запись в файл не произошла, те запись была только asdf
щас скину скрин в файле
0
0 / 0 / 3
Регистрация: 29.05.2014
Сообщений: 83
11.06.2014, 18:17 36
Вот результат а должен быть как на выводе по сути.
Миниатюры
Не выводится информация в файл через fstream  
0
0 / 0 / 3
Регистрация: 29.05.2014
Сообщений: 83
11.06.2014, 18:21 37
Как мне объяснили все связанно с выравниванием, те для начала вывести size of(name);
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
11.06.2014, 18:24 38
Цитата Сообщение от Ринат Посмотреть сообщение
Вот результат а должен быть как на выводе по сути.
С чего бы это? Будем по кругу ходить?
Цитата Сообщение от alsav22 Посмотреть сообщение
Правильность записи проверяется правильностью вывода. Если вывод такой как нужно, то и запись значит правильная.
Файл не для того, чтобы его в блокноте разглядывать (тем более, записанный в бинарном режиме).
Введите разные данные для каждой из трёх структур (только чтобы сразу было видно, что разные), и покажите скрин ввода и вывода на консоль.
И код выложите, который пробуете.
0
0 / 0 / 3
Регистрация: 29.05.2014
Сообщений: 83
11.06.2014, 18:33 39
Вот с разными данными скрин и вывод с sizeof
Миниатюры
Не выводится информация в файл через fstream  
0
0 / 0 / 3
Регистрация: 29.05.2014
Сообщений: 83
11.06.2014, 18:33 40
Вот код:
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
#include <iostream>
#include <fstream>
#include <string>
#include <stdio.h>
using namespace std;
 
struct name{//глобальная структура к которой обращается функция ввода
char regicer[100];
char films[100];
int god;
int dollar;
}; name lenta[40];
 
 
 
void vvod(void)//Функция ввода по сути которая должна возвращать переменные в структуру.
{
    setlocale(LC_ALL, "RUS");
    int i;
    for(i = 0; i < 3; i++)
    {
        cout<<"ВВедите режисера: ";
        cin>>lenta[i].regicer;
        cout<<"Введите название фильма: ";
        cin>>lenta[i].films;
        cout<<"Введите год выпуска фильма: ";
        cin>>lenta[i].god;
        cout<<"Введите стоимость: ";
        cin>>lenta[i].dollar;
    }
}
 
void writes(void)
{
    setlocale(LC_ALL, "RUS");
    ofstream file("FILMS.TXT");
    for (int i = 0; i < 3; ++i){
        file.write((char *) &lenta[i], sizeof(name));
 
}
file.close();
}
 
void read(void)
{
    setlocale(LC_ALL, "RUS");
    ifstream file("FILMS.TXT");
    name temp;
    while(file.read((char*)&temp, sizeof(name)))
    {
        cout << temp.regicer<<"  "<<temp.films<<"  "<<temp.god<<"  "<<temp.dollar<<endl;
 
   }
   file.close();
}
 
int vivod(void)
{setlocale(LC_ALL,"RUS");
cout<<sizeof(name);
 
 
}
int main()
{
    vvod();
    writes();
    read();
    vivod();
    return(0);
}
0
11.06.2014, 18:33
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.06.2014, 18:33
Помогаю со студенческими работами здесь

Файл создается, но в него не записываеться информация, и не выводится в консоль
#include &lt;vcl.h&gt; #pragma hdrstop #include&lt;stdlib.h&gt; #include&lt;iostream.h&gt; #include&lt;stdio.h&gt;...

Не хочет работать вывод в файл через fstream и <<
Открывается файл, считывает пару строк, освобождаем буфер потока (хотя их вроде бы два при...

При записи в файл и при чтении выводится не вся информация
не работает следующее, когда сохраняешь файл с данными, а потом загружаешь его то выводит не всю...

Не выводится информация
Здравствуйте, пытаюсь сделать CMS. Общий код готов, осталось только доработать детали. Одной из...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru