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

Запись в файл - C++

Восстановить пароль Регистрация
 
barmagloteot
0 / 0 / 0
Регистрация: 14.11.2012
Сообщений: 29
15.01.2013, 00:21     Запись в файл #1
Доброго времени суток.
Начал изучать работу с файлами, и малость запутался.
Ищу по разным источникам, и везде команды предлагается записывать по разному.
В общем написал такой набросок.

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
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <clocale>
using namespace std;
int main()
{
setlocale(LC_CTYPE,"Russian");
int size1=0;
cout<<"Введите размер файла"<<endl;
cin>>size1;
fstream f1("F1.txt");
cout<<"Введите элементы в файл 1"<<endl;
for (i=0; i<size1; i++)
{
    int v=0;
    cin>>v;
    f1<<v;
}
for (i=0; i<size1; i++)
{
    int v=0;
    f1>>v;
    cout<<"f"<<v<<endl;
}
    system("pause");
    return 0;
}
Взял код из видео на ютубе. Там он рабочий, но среда не VS.
У меня в VS соответственно он не корректен - показывает нули в файле. В чем ошибка?
И еще вопрос, куда и как вставлять режим trunc в приведенном выше способе вызова файла?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.01.2013, 00:21     Запись в файл
Посмотрите здесь:

Запись в файл C++
Запись в файл C++
C++ Запись в файл
C++ Запись в файл
C++ Запись в файл
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Wolkodav
 Аватар для Wolkodav
599 / 452 / 32
Регистрация: 18.09.2012
Сообщений: 1,685
15.01.2013, 00:29     Запись в файл #2
Вы открываете файл, но не указываете какой он для записи или для чтения, а потом используете и для записи и для чтения. Так нельзя, если считываете а потом записываете в один и тот же файл, то в начале надо открыть как для чтения, считать, закрыть, открыть для записи, записать, закрыть. Да и закрывайте файлы в любом случае перед последним return, всё-таки надо подбирать за собой!
barmagloteot
0 / 0 / 0
Регистрация: 14.11.2012
Сообщений: 29
15.01.2013, 00:41  [ТС]     Запись в файл #3
Странно, из того что прочитал следовало что fstream это ios::in|ios::out одновременно.
Пробую сделать в таком порядке: ofstream,fclose,ifstream,fclose.
Что то с fclose(f1) проблема, f1 считает за ошибку.

И все еще интересует куда в моем случае записать trunc.
Wolkodav
 Аватар для Wolkodav
599 / 452 / 32
Регистрация: 18.09.2012
Сообщений: 1,685
15.01.2013, 00:49     Запись в файл #4
Хм, возможно, я не уверен если честно, но вы не можете cin сразу ввести а потом вывести, тут тоже самое. Если вы указываете fstream, то надо указывать спецификацию, а если ifstream, и так далее, то не надо указывать и так понятно. Да, совет, если считали все что нужно из фаила, то закрывайте его, что бы потом не забыть!

Добавлено через 3 минуты
А что она делает если не сикрет? А её что-то не узнаю.
barmagloteot
0 / 0 / 0
Регистрация: 14.11.2012
Сообщений: 29
15.01.2013, 05:06  [ТС]     Запись в файл #5
Эта - ничего, просто взял кусок с записью в файл из задания которое пишу, и добавил вывод из файла для наглядности. Просто чтобы разобраться в чем ошибка.

У меня с закрытием какая-то проблема. Сделал вот так:
C++
1
2
3
4
5
6
7
8
9
10
11
cout<<"Введите размер файла"<<endl;
cin>>size1;
ofstream f1("F1.txt");
cout<<"Введите элементы в файл 1"<<endl;
for (i=0; i<size1; i++)
{
    int v;
    cin>>v;
    f1<<v;
    }
fclose(f1);
значение f1 в fclose() подчеркнуто как ошибка. Как это правильно записать ?

Добавлено через 4 часа 5 минут
Разобрался с close.
В моем случае нужно f1.close() а не fclose(f1).
Пишу дальше, и опять проблемы с файлами.

вот кусок кода:
C++
1
2
3
4
5
6
ifstream f1("F1.txt");
for (i=0; i<size1; i++)
{
    int v=0;
    f1>>v;
}
В последней строке ">>" считается ошибкой. "Отсутствует оператор соответствующий этим операндам".
Я уже вообще не понимаю как с этими файлами работать. Подскажите пожалуйста, в чем тут-то проблема.
Wolkodav
 Аватар для Wolkodav
599 / 452 / 32
Регистрация: 18.09.2012
Сообщений: 1,685
15.01.2013, 07:35     Запись в файл #6
f1.close();
это метод класса будет.
Yandex
Объявления
15.01.2013, 07:35     Запись в файл
Ответ Создать тему
Опции темы

Текущее время: 02:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru