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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.62
Mayonez
380 / 272 / 21
Регистрация: 26.12.2009
Сообщений: 875
#1

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

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

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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.02.2011, 18:03
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не выводится информация в файл через fstream (C++):

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

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

Не выводится информация из файла - C++
не выводится информация с файла! #include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;string&gt; struct test { std::string...

Функция cin.get - информация не выводится - C++
При вводе числа данная программа работает нормально, однако если ввести, например, букву по идее должно появляться сообщение &quot;Ошибка! Это...

Ввод и вывод через fstream - C++
Непонятно почему не выводит в файл. Например в файле 123 &quot;аааббб&quot; а в файл 321 пустота, но если использовать разные имена потоков все ок. ...

Fstream не видит файл - C++
Делаю лабу и возникла такая проблема - надо открыть текстовый файл. Файл лежит в одной папке c .exe . Но программа упорно не видит файл. ...

55
Ринат
0 / 0 / 0
Регистрация: 29.05.2014
Сообщений: 81
11.06.2014, 18:06 #31
ну на сколько я знаю циклы они пишутся так for(i=0,i<=3,i++){
тут тело цикла
}
0
Ринат
0 / 0 / 0
Регистрация: 29.05.2014
Сообщений: 81
11.06.2014, 18:12 #32
Вот вложил файл результата программы.
0
Миниатюры
Не выводится информация в файл через fstream  
Ринат
0 / 0 / 0
Регистрация: 29.05.2014
Сообщений: 81
11.06.2014, 18:12 #33
Те считывает нормально
но не записывает.
0
alsav22
5426 / 4821 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
11.06.2014, 18:14 #34
Цитата Сообщение от Ринат Посмотреть сообщение
ну на сколько я знаю циклы они пишутся так for(i=0,i<=3,i++){
тут тело цикла
}
Не отвлекайтесь, скобки не всегда нужны. Правильно там всё (откуда взялось <= ? Просто <).
Цитата Сообщение от Ринат Посмотреть сообщение
Вот вложил файл результата программы.
И? Что записали, то и вывелось. Что не так?
0
Ринат
0 / 0 / 0
Регистрация: 29.05.2014
Сообщений: 81
11.06.2014, 18:15 #35
запись в файл не произошла, те запись была только asdf
щас скину скрин в файле
0
Ринат
0 / 0 / 0
Регистрация: 29.05.2014
Сообщений: 81
11.06.2014, 18:17 #36
Вот результат а должен быть как на выводе по сути.
0
Миниатюры
Не выводится информация в файл через fstream  
Ринат
0 / 0 / 0
Регистрация: 29.05.2014
Сообщений: 81
11.06.2014, 18:21 #37
Как мне объяснили все связанно с выравниванием, те для начала вывести size of(name);
0
alsav22
5426 / 4821 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
11.06.2014, 18:24 #38
Цитата Сообщение от Ринат Посмотреть сообщение
Вот результат а должен быть как на выводе по сути.
С чего бы это? Будем по кругу ходить?
Цитата Сообщение от alsav22 Посмотреть сообщение
Правильность записи проверяется правильностью вывода. Если вывод такой как нужно, то и запись значит правильная.
Файл не для того, чтобы его в блокноте разглядывать (тем более, записанный в бинарном режиме).
Введите разные данные для каждой из трёх структур (только чтобы сразу было видно, что разные), и покажите скрин ввода и вывода на консоль.
И код выложите, который пробуете.
0
Ринат
0 / 0 / 0
Регистрация: 29.05.2014
Сообщений: 81
11.06.2014, 18:33 #39
Вот с разными данными скрин и вывод с sizeof
0
Миниатюры
Не выводится информация в файл через fstream  
Ринат
0 / 0 / 0
Регистрация: 29.05.2014
Сообщений: 81
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
alsav22
5426 / 4821 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
11.06.2014, 18:36 #41
Теперь содержимое файла покажите.
0
Ринат
0 / 0 / 0
Регистрация: 29.05.2014
Сообщений: 81
11.06.2014, 18:42 #42
Использовал выравнивание, выводит в консоли терь все ровно, но запись такая же в файл.
Вот код:
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
71
#include <iostream>
#include <fstream>
#include <string>
#include <stdio.h>
using namespace std;
 
#pragma pack(push,1)
struct name{//глобальная структура к которой обращается функция ввода
char regicer[100];
char films[100];
int god;
int dollar;
}; name lenta[40];
#pragma pack(pop)
 
 
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
Ринат
0 / 0 / 0
Регистрация: 29.05.2014
Сообщений: 81
11.06.2014, 18:47 #43
Вот содержимое файла.
0
Миниатюры
Не выводится информация в файл через fstream  
alsav22
5426 / 4821 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
11.06.2014, 18:55 #44
Цитата Сообщение от Ринат Посмотреть сообщение
Вот содержимое файла.
Херня это, а не содержимое файла. Или это не тот файл, куда делается запись, или старое содержимое. Закройте его и снова откройте.
0
Ринат
0 / 0 / 0
Регистрация: 29.05.2014
Сообщений: 81
11.06.2014, 19:23 #45
Удалил файл, запустил программу, она снова его создала там же. результат тот же) Как мне объяснили в коде все правильно, это файл бинарный из за этого такая фигня кароч я сам не понимаю)
0
11.06.2014, 19:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.06.2014, 19:23
Привет! Вот еще темы с ответами:

Запись в файл fstream - C++
После первого прогона не выводит ничего из файла. void WriteInTheFile(fstream &amp;file_in) { file_in.seekg(0,file_in.end); char str;...

Запись в файл fstream - C++
Вот такой вот код , изобразил я для записи переменной в файл , проблема в том , что компилятор записывает в него не 10 раз L , а ...

Fstream не видит файл - C++
Почему в Visual Studio2015 не находит текстовый файл, который лежит рядом с .exe? ifstream F; F.open(&quot;vacancy.txt&quot;); char...

Запись/чтение структуры через fstream - C++
Доброго времени суток! у меня есть несколько вопросов по поводу файловых потоков. 1. Как можно записать/прочитать массив структур в...


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

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

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