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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 45, средняя оценка - 4.93
delias
4 / 4 / 0
Регистрация: 16.07.2009
Сообщений: 87
#1

Как работает write в fstream? - C++

28.01.2010, 22:07. Просмотров 6548. Ответов 21
Метки нет (Все метки)

есть файл с текстом:
fstream f("f.txt",ios::in);

надо его разделить его на части по сколько-то байт (переменная piece)
создаю массив для буффера:
char * buffer;
buffer = new char [piece];

далее выполняю f.write (buffer,piece); чтобы считать из файла данные и записать их в массив buffer, однако при отладке смотрю что в buffer никаких данных не добавляется, что-то типа:
buffer 0x00347670 "ННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН" char *
собсно вопрос: как же мне считать данные чтобы их потом поместить в другой файл?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.01.2010, 22:07
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как работает write в fstream? (C++):

Write из fstream - C++
Здравствуйте!) Не могу понять, как пишет данные в файл функция write( То есть мы с помощью seekp указали позицию в потоке (файле) и...

fstream::tellp() не работает как надо. - C++
#include <iostream> #include <stdlib.h> #include <fstream> using namespace std; int main(int argc, char** argv) { ...

Std::fstream почему функция write принимает параметр char* а не unsigned char* (аля byte*) ? - C++
Ну собственно сабж... std::fstream fs; fs.write((char*)..) В случае бинарного потока я допустим пишу байты функцией write, как...

не работает fstream.h - C++
Всем доброго дня !!! Решил поработать с файлами. В учебнике четко сказанно , что fstream.h не требует iostream.h В...

работает fstream в VC++2010 - C++
скажите пожалуйста библиотечный файл <fstream.h> поддерживает VC++2010? а то почему то даже простой код не работает ! или я может что то...

fstream не работает и чтение и запись - C++
Добрый день! Не пойму, почему введение функции getline становится причиной того, что запись в файл не идет. Если getline убрать, то все...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
ggmann
20 / 20 / 1
Регистрация: 06.10.2008
Сообщений: 173
28.01.2010, 22:44 #2
вот пример как копировать из файла в файл, может это тебе поможет
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <fstream>
#include <iostream>
#include  <string>
 
using namespace std;
 
int main(){
    ifstream in ("Scopy.cpp");     //источник
    ofstream out ("Scopy2.cpp"); //целевой файл
    string s, line;   //строки для записи инфы из файла
    
    while(getline(in,line))
    s+=line + "\n";
    out << s;     
 
    system("Pause");
}
delias
4 / 4 / 0
Регистрация: 16.07.2009
Сообщений: 87
29.01.2010, 00:16  [ТС] #3
да не, спасибо но это не то что надо

Добавлено через 46 минут
угу, понял что всё правильно в переменную заносится, видимо побитово оно так и должно выглядеть. в общем делю текстовый файл в результате образуется несколько файлов с такими символами.
дайте подсказку, как же поделить, чтобы сохранился исходный текст (разнести его по разным файлам)
accept
4821 / 3241 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
29.01.2010, 04:59 #4
C++
1
ios::binary
нужно добавить

Цитата Сообщение от delias
чтобы считать из файла данные и записать их в массив buffer
C++
1
f.getline(buffer, piece);
write - это записать в файл
delias
4 / 4 / 0
Регистрация: 16.07.2009
Сообщений: 87
29.01.2010, 15:45  [ТС] #5
спасибо, вопрос решен
Ринат
0 / 0 / 0
Регистрация: 29.05.2014
Сообщений: 81
29.05.2014, 15:50 #6
Здравствуйте, у меня возник вопрос по поводу fstream , тут такой вопрос как создать просто элементарно файл? и записать в него хотя бы одно слово?? к примеру
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <fstream>
using namespace std;
 
ofstream file_object("FILENAME.EXT");
int main(void)
 
{
 
   ofstream book_file("BOOKINFO.DAT");
   book_file << "Учимся программировать на языке C++, " << "Вторая редакция" << endl;
   book_file << "Jamsa Press" << endl;
   book_file << "22.95" << endl;
}
Вот в этом коде я так понял создается ofstream file_object("FILENAME.EXT"); те имя файла далее в него записывается book_file?? те там будет написано в самом файле Учимся программировать на языке С++, далее jamsa Press и 22.95?
dzrkot
zzzZZZ...
519 / 349 / 53
Регистрация: 11.09.2013
Сообщений: 1,997
29.05.2014, 15:54 #7
в чём вопрос? вы на него сами ответили...
Ринат
0 / 0 / 0
Регистрация: 29.05.2014
Сообщений: 81
29.05.2014, 15:57 #8
Те по факту я хочу создать програмку в которой я буду писать любой слово и оно будет сохр в этом файле те в формате TXT, примерно я это представляю так:
C++
1
2
3
4
5
6
7
8
9
#include <iostream>
using namespace std;
 
int main()
{setlocale(LC_ALL,"RUS");
char Nazvanie[100];
 
cout<<"Введите название"<<endl;
cin>>Nazvanie;
Далее после ввода массива данных как сделать так чтобы он сохр в файле??

Добавлено через 1 минуту
Да но он не рабочий в кампиляторе ругается на сам void
dzrkot
zzzZZZ...
519 / 349 / 53
Регистрация: 11.09.2013
Сообщений: 1,997
29.05.2014, 16:00 #9
Цитата Сообщение от Ринат Посмотреть сообщение
Далее после ввода массива данных как сделать так чтобы он сохр в файле??
ну давайте подумаем вместе, если код ниже создает поток и запсиывает в файл(кстате используйте тэги)
Цитата Сообщение от Ринат Посмотреть сообщение
ofstream file_object("FILENAME.EXT");
C++
1
2
3
4
5
6
7
int main(void)
{
ofstream book_file("BOOKINFO.DAT"); // создаем выходной поток
book_file << "Учимся программировать на языке C++, " << "Вторая редакция" << endl;//отправляем инфу в файл
book_file << "Jamsa Press" << endl;
book_file << "22.95" << endl;
}
то вероятнее всего вам надо сделать тоже самое=)

Добавлено через 1 минуту
Цитата Сообщение от Ринат Посмотреть сообщение
Да но он не рабочий в кампиляторе ругается на сам void
ну это особенность компилятора, уберите void =)
Ринат
0 / 0 / 0
Регистрация: 29.05.2014
Сообщений: 81
29.05.2014, 16:04 #10
C int я уже пробовал но фишка в том а где сам файл создается? как его найти?))

Добавлено через 1 минуту
Ну или как вариант как прописать место где он должен создаваться? в стиле прописать путь где он будет находится:C:/document and setings/may files/
dzrkot
zzzZZZ...
519 / 349 / 53
Регистрация: 11.09.2013
Сообщений: 1,997
29.05.2014, 16:07 #11
Цитата Сообщение от Ринат Посмотреть сообщение
C int я уже пробовал но фишка в том а где сам файл создается? как его найти?))
гыгы)) можно через поиск, а можно в каталоге проекта посмотреть, он там по-умолчанию если путь не указан полностью=))

Добавлено через 1 минуту
Цитата Сообщение от Ринат Посмотреть сообщение
в стиле прописать путь где он будет находится:C:/document and setings/may files/
только там вроде // должны быть под винду или \\ уже не помню в зав от ОС

Добавлено через 1 минуту
C++
1
2
3
4
5
6
7
8
#include <iostream>
#include <fstream>
using namespace std;
int main()
  {
  ofstream o("D:\\asdtexttest.txt");
  return 0;
  }
Ринат
0 / 0 / 0
Регистрация: 29.05.2014
Сообщений: 81
29.05.2014, 16:14 #12
Я нашел файл) BOOKINFO.DAT через поиск.

Добавлено через 2 минуты
Цитата Сообщение от dzrkot Посмотреть сообщение
ofstream o("D:\\asdtexttest.txt");
а что означает после fstream---> "o"?
dzrkot
zzzZZZ...
519 / 349 / 53
Регистрация: 11.09.2013
Сообщений: 1,997
29.05.2014, 16:24 #13
Цитата Сообщение от Ринат Посмотреть сообщение
а что означает после fstream---> "o"?
просто название для потока
чтобюы записать что-либо в этот файл пишите потом
C++
1
o<<"ляляля на ромашковом поле";
Ринат
0 / 0 / 0
Регистрация: 29.05.2014
Сообщений: 81
29.05.2014, 16:31 #14
те благодоря "о" можно управлять потоками? это как переменная к которой можно обращатся?
dzrkot
zzzZZZ...
519 / 349 / 53
Регистрация: 11.09.2013
Сообщений: 1,997
29.05.2014, 16:33 #15
Цитата Сообщение от Ринат Посмотреть сообщение
те благодоря "о" можно управлять потоками? это как переменная к которой можно обращатся?
почитайте лучше что -нибудь, могу порекомендовать.
С.Прата глава 18 файловый Ввод/вывод
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.05.2014, 16:33
Привет! Вот еще темы с ответами:

Функция write open не работает - C++
В общем вот алгорифм #include &lt;iostream&gt; //Все нужные библиотеки есть int main() { int id; char buffer; ...

При работе fstream указатель типа pos_type (позиции в файле) не работает - C++
Разбираю код с сайта: http://valera.asf.ru/cpp/book/c20.html Компилятор Билдер-6 ругается. когда я создаю консольное приложение и...

Как проверить, открылся ли fstream? - C++
Nado otkrit file i proverit otkrilsa li on ili net. Podskazhite kakim obrazom eto mozhno sdelat? Zaranee spasibo.

<fstream> как копировать файлы? - C++
Какой функцией можно скопировать нужный файл?


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
29.05.2014, 16:33
Ответ Создать тему
Опции темы

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