Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.90/21: Рейтинг темы: голосов - 21, средняя оценка - 4.90
9 / 9 / 2
Регистрация: 02.11.2012
Сообщений: 153
1

read(); write();

20.02.2013, 01:59. Показов 4241. Ответов 28
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вот такая вот небольшая программка

C++
1
2
3
4
5
6
fstream myFileReader("hardware.dat", ios::in | ios::out);
 
    int example = 1;
    myFileReader.write((char*) &example, sizeof(example));
    myFileReader.read((char*) &example, sizeof(example));
    cout << example;
У меня она выводит бред типа -803434434; только у меня такое?( просто боюсь, что на моём компьютере что-то со шрифтами, либо в коде я напортачил. Оказалось, что виноваты не шрифты моей винды. Но в самоучителе явно приведён похожий код на запись и чтение файлов, но там вывод почему-то абсолютно адекватный, а у меня мусор.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.02.2013, 01:59
Ответы с готовыми решениями:

Функции write и read
Здравствуйте, уважаемые! Вопросы по работе с файлом через fstream. Возник вопрос по поводу записи...

Read and write binary file
Ребята, срочно нужна помощь. Записываю класс Message с сообщениями в файл. struct Head {...

Существуют ли в C++ аналоги делфийских write и read?
Только час назад начал изучать С++ обшарил пол интернета но что то так и не соображу , есть ли тут...

В чем разница между f.read(),f.write() и f<<., f>>.?
В чем разница между f.read(),f.write() и f&lt;&lt;..., f&gt;&gt;...?

28
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
20.02.2013, 03:55 21
Author24 — интернет-сервис помощи студентам
точнее, он делает умнее. Он использует буфер, когда ты вызываешь write. пишется в буфер библиотеки. Когда ты вызываешь read потока с++, то вызывается для буфера потока write системный. И только потом уже системный read

Добавлено через 1 минуту
Цитата Сообщение от alsav22 Посмотреть сообщение
В Windows же использует...
В линукс тоже. Я продебажил сейчас. Просто она умнее делает, когда ты вызываешь чтение. Она библиотечный буфер отдает ядру. Но не сбрасывает. так как отдачи уже достаточно для того, чтобы читать актуальные данные.
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
20.02.2013, 03:57 22
Цитата Сообщение от Vourhey Посмотреть сообщение
В линукс тоже. Я продебажил сейчас. Просто она умнее делает, когда ты вызываешь чтение. Она библиотечный буфер отдает ядру. Но не сбрасывает. так как отдачи уже достаточно для того, чтобы читать актуальные данные.
Хорошо. Но это что: другая реализация стандартной библиотеки? Именно для Linux? Или и для Windows есть реализации, которые так же работают?
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
20.02.2013, 03:58 23
Цитата Сообщение от alsav22 Посмотреть сообщение
Но это что: другая реализация стандартной библиотеки?
Вопрос смешной А что же еще. Конечно. Я об этом твердил тебе с самого начала. Что рассматривая данную программу, ОС во внимание вообще брать нельзя. Она роли тут не играет ни на долю. Даже 0% участия ОС тут нет. Не понятно, чего ты там привязался к ОСи. Если я реализую стандартную библиотеку так, что она вообще никогда не будет записывать файл, то можно будет сказать, что "на винде файлы не записываются на диск". И в пример привест код, скомпиленый с моей библиотекой.
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
20.02.2013, 04:01 24
И про sync(). Этот метод не срабатывет в Linux для очистки потока. В Windows - работает.

Добавлено через 53 секунды
Цитата Сообщение от Vourhey Посмотреть сообщение
Вопрос смешной, честно. А что же еще-то.
До конца не ответил. Только для Linux такая реализация? Или и для Windows есть реализации, которые так же работают?
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
20.02.2013, 04:08 25
Цитата Сообщение от alsav22 Посмотреть сообщение
Этот метод не срабатывет в Linux для очистки потока.
А метод чего? Метод класса стандартной библиотеки? Тогда вопрос не корректен, так как, сюда как-то попало слово Linux.
Цитата Сообщение от alsav22 Посмотреть сообщение
Только для Linux такая реализация?
Я не знаю все реализации библиотек. Я знаю, что они различные и она не одна. А на какой ОС либа работает значения не имеет никакого. Любой вопрос, кто и как себя ведет - адресуй авторам библиотеки. Потому что в линуксе буферизация работает гарантированно. Независимо от того, какую библиотеку ты используешь.
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
20.02.2013, 04:09 26
Реализации стандартной библиотеки, они, ввобще, как различаются-определяются? По компилятору? По среде?
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
20.02.2013, 04:10 27
Цитата Сообщение от alsav22 Посмотреть сообщение
Только для Linux такая реализация?
Хотя, учитывая, что библиотеки могут быть любые, то можно ответить - нет, не только. Найди нужную, или напиши свою.
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
20.02.2013, 04:18 28
Цитата Сообщение от Vourhey Посмотреть сообщение
Хотя, учитывая, что библиотеки могут быть любые
Разговор о стандартной.
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
20.02.2013, 04:35 29
Цитата Сообщение от alsav22 Посмотреть сообщение
Разговор о стандартной.
И? libstdc++. Как видишь, буферизация там прекрасно работает. И на уровне библиотеки в том числе. И все это добро к слову "Linux" и к "а я разницу вижу" отношения не имеет. С тем, какие они еще есть и как в них, что реализовано - разбирайся сам.

Добавлено через 8 минут
Цитата Сообщение от alsav22 Посмотреть сообщение
Реализации стандартной библиотеки, они, ввобще, как различаются-определяются? По компилятору? По среде?
Так же, как любая функциональность, которую пишут разные программисты под разные платформы. Функциональность реализовывают, но каждый может по-своему что-либо сделать опираясь на стандарт.
Слинковаться можно с любой библиотекой. Среда и компиляторы не важны.
1
20.02.2013, 04:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.02.2013, 04:35
Помогаю со студенческими работами здесь

ofstream & ifstream :: binary read-write struct
Не пойму в чем дело... но я не могу считать всю структуру FNTBINARY из файла, файл - это она и есть...

Передать из одного файла в другой текст построчно посредством read() write()
# include &lt;iostream&gt; # include &lt;vector&gt; # include &lt;fstream&gt; # include &lt;string&gt; using...

Как при помощи ф-ий read/write записать в файл, а потом считать с него
Такой вопрос! Как при помощи ф-ий read/write записать в файл, а потом считать с него различные...

Пример функции для изменения региона защиты памяти процесса с Read Only на Write Copy
будьте добры привести пример функции для изменения региона защиты памяти процесса с Read Only на...


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

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