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

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

Войти
Регистрация
Восстановить пароль
 
 
aLarman
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
#1

Запись в ofstream - разобрать код - C++

23.07.2014, 12:48. Просмотров 681. Ответов 17
Метки нет (Все метки)

Доброго времени суток
объясните как это работает?
C++
1
2
3
4
5
6
7
8
char msg[255];
//что то записали в msg не важно как, суть в том что туда писали без символа \0, 
//и данных может быть меньше 255(больше 255 не может быть),
// так же знаем сколько записали iMsgSize
ofstream File;
File.open("bla bla");
File<<msg;
File.flush();
сколько символов запишется? до первого поппавшегося \0 в памяти начиная от msg или как?

Добавлено через 1 минуту
и да какой метод будет вызван? этот?
C++
1
ostream& operator<< (void* val);
Добавлено через 2 минуты
и еще вдогонку, чтобы писать конкретное кол-во символов как проще поступить?
C++
1
2
3
std::string sMsg;
sMsg.assign(msg, msg+iMsgSize);
File<<sMsg;
есть еще варианты?

Добавлено через 2 минуты
черт только что нашел
C++
1
File.write(msg, iMsgSize);
но буду рад предложениям
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.07.2014, 12:48
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Запись в ofstream - разобрать код (C++):

Сокращенная запись ifstream и ofstream - C++
#include &lt;fstream&gt; using namespace std; int main() { fstream I(&quot;input.txt&quot;), O(&quot;output.txt&quot;, 2); что означает второй...

Ofstream запись в начало файла - C++
Всем здрасьте ! Мне нужно с помощью ofstream записать данные в начало файла, а данные записанные до этого должны сохраниться !

Чтением и запись в файл, ifstream/ofstream - C++
Здравствуйте, уважаемые участники форума, есть такое задание, возвести в квадрат каждый элемент массива, стоящий на четном месте и в куб...

C++ файлы ifstream/ofstream запись класса - C++
Доброе время суток дамы и господа :) необходимо помочь ибо что-то голова не варит )) класс #pragma once #include &lt;iostream&gt; using...

(ofstream) запись float, уменьшение точности и нормализация - C++
столкнулся с этой проблемой при записи в бинарный файл. внимательно всё перекопал, пока подозрение не пало на это, перевел на текстовый...

Std::ofstream запись и чтение переменных в бинарный файл - C++
int a = 1; std::ofstream file(&quot;test.settings&quot;, std::ios::in | std::ios::out | std::ios::binary); ...

17
Voivoid
675 / 278 / 12
Регистрация: 31.03.2013
Сообщений: 1,339
23.07.2014, 12:50 #2
Цитата Сообщение от aLarman Посмотреть сообщение
сколько символов запишется? до первого поппавшегося \0 в памяти начиная от msg или как?
На то, чтобы взять и попробовать времени ушло бы меньше чем на написание этого поста, лол
0
Ilot
Модератор
Эксперт С++
1823 / 1181 / 232
Регистрация: 16.05.2013
Сообщений: 3,118
Записей в блоге: 5
Завершенные тесты: 1
23.07.2014, 12:56 #3
Вместо слов:
C++
1
2
3
4
  template<typename _CharT, typename _Traits>
    class basic_ofstream : public basic_ostream<_CharT,_Traits>
    {
        ...
Цитата Сообщение от aLarman Посмотреть сообщение
черт только что нашел
Есть различие между режимами записи. operator<< и write предназначенны для различных режимов работы с файлом.
0
aLarman
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
23.07.2014, 13:02  [ТС] #4
Ilot, и что это?

Добавлено через 19 секунд

Не по теме:

Voivoid, если сказать нечего, лучше промолчать



Добавлено через 2 минуты
Цитата Сообщение от Ilot Посмотреть сообщение
operator<< и write предназначенны для различных режимов работы с файлом.
вот это уже другой разговор, где можно об этом почитать?
0
Ilot
Модератор
Эксперт С++
1823 / 1181 / 232
Регистрация: 16.05.2013
Сообщений: 3,118
Записей в блоге: 5
Завершенные тесты: 1
23.07.2014, 13:04 #5
Цитата Сообщение от aLarman Посмотреть сообщение
Ilot, и что это?
Это значит поведение operator << для файлового потока идентично поведению для стандартного потока вывода, читай консоль. Ну а с консолью вы же работать умеете?...
Цитата Сообщение от aLarman Посмотреть сообщение
вот это уже другой разговор, где можно об этом почитать?
В любой книге. Хоть Лафоре, хоть Прата...
1
aLarman
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
23.07.2014, 13:07  [ТС] #6
Цитата Сообщение от Ilot Посмотреть сообщение
Ну а с консолью вы же работать умеете?...
а все ясно

Добавлено через 21 секунду
Цитата Сообщение от Ilot Посмотреть сообщение
operator<< и write предназначенны для различных режимов работы с файлом.
а в 2х словах можно?
0
Ilot
Модератор
Эксперт С++
1823 / 1181 / 232
Регистрация: 16.05.2013
Сообщений: 3,118
Записей в блоге: 5
Завершенные тесты: 1
23.07.2014, 13:23 #7
Цитата Сообщение от aLarman Посмотреть сообщение
а в 2х словах можно?
Есть два режима работы текстовой и бинарный. В первом случае запись идет посимвольно во втором побитно. Например,
C++
1
2
3
4
int val = 123;
fout << val;
...
fout.write(static_cast<char>(&val), sizeof(val));
Первая команда поместит в файл:
0x31
0x32
0x33
Вторая:
0x00 00 00 7B
P.S. Надеюсь нигде не приврал...
1
Alex5
1075 / 739 / 115
Регистрация: 12.04.2010
Сообщений: 1,895
23.07.2014, 13:57 #8
Цитата Сообщение от Ilot Посмотреть сообщение
Вторая:
0x00 00 00 7B
Возможно, зависит от операционной системы. В Windows байты хранятся в обратном порядке: 7B 00 00 00.
0
Jupiter
Каратель
Эксперт С++
6559 / 3980 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
23.07.2014, 15:53 #9
Цитата Сообщение от Alex5 Посмотреть сообщение
В Windows байты хранятся в обратном порядке: 7B 00 00 00.
в Window байты не хранятся. и порядок байт не зависит от ОС.
0
ValeryS
Модератор
6682 / 5091 / 477
Регистрация: 14.02.2011
Сообщений: 17,092
23.07.2014, 16:06 #10
Цитата Сообщение от Jupiter Посмотреть сообщение
и порядок байт не зависит от ОС.
зависит от процессора
но поскольку винда чаще всего на Intel то можно сказать и винда хранит

Добавлено через 2 минуты
Цитата Сообщение от Alex5 Посмотреть сообщение
В Windows байты хранятся в обратном порядке: 7B 00 00 00.
как раз в правильном порядке
младший бит по младшему адресу в отличии допустим от мотороллы
и для евреев и арабов будет нормальная запись, они читают справа налево, а для нас кажется перевернутой
0
gru74ik
Модератор
Эксперт CЭксперт С++
4189 / 1837 / 198
Регистрация: 20.02.2013
Сообщений: 4,976
Записей в блоге: 21
23.07.2014, 18:55 #11
Цитата Сообщение от ValeryS Посмотреть сообщение
винда чаще всего на Intel
Лолшто? ))) Какая связь между процом и ОС? ИМхо, кто на чё фапает, тот то и ставит (проц и ОС).
0
castaway
23.07.2014, 19:01
  #12

Не по теме:

Честно говоря, не знал что в архитектурах процессоров существует такое понятие как порядок бит.

0
ValeryS
Модератор
6682 / 5091 / 477
Регистрация: 14.02.2011
Сообщений: 17,092
23.07.2014, 19:31 #13
Цитата Сообщение от gru74ik Посмотреть сообщение
Какая связь между процом и ОС?
Вообще то прямая, ОС пишут под процессор
ты видел чтобы Винду портировали под ARM или Motorola?
я нет

Добавлено через 2 минуты

Не по теме:

castaway,
да обширился я Байт конечно
просто когда пишу постоянно путаю слова, когда работаю нет
могу запросто написать старший байт в бите

0
Jupiter
Каратель
Эксперт С++
6559 / 3980 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
23.07.2014, 23:05 #14
Цитата Сообщение от ValeryS Посмотреть сообщение
но поскольку винда чаще всего на Intel то можно сказать и винда хранит
не пиши чушь!

Цитата Сообщение от ValeryS Посмотреть сообщение
в отличии допустим от мотороллы
при чем тут моторолла? это вообще другая аппаратная платформа и естественно что все там по-другому

Добавлено через 56 секунд
Цитата Сообщение от ValeryS Посмотреть сообщение
ты видел чтобы Винду портировали под ARM или Motorola?
я нет
наличие/отсутствие винды не показатель того какой должен быть порядок байт
0
gru74ik
Модератор
Эксперт CЭксперт С++
4189 / 1837 / 198
Регистрация: 20.02.2013
Сообщений: 4,976
Записей в блоге: 21
24.07.2014, 06:52 #15
Цитата Сообщение от ValeryS Посмотреть сообщение
Вообще то прямая, ОС пишут под процессор
ты видел чтобы Винду портировали под ARM или Motorola?
я нет
ОС может и пишут под процы - спорить не буду, тут я не спец. По крайней мере разные сборки убунты под AMD и Intel твои слова подтверждают. Но вот винде абсолютно пофигу на компе с каким процом она будет стоять. И стоящие в соседних комнатах у меня дома компы с процом Intel (у сына) и AMD (у супруги) этому свидетели. На обоих одна и та же винда.

Итак, попробуем ещё раз. Какая связь между виндой и процессором компьютера, на который она будет установлена?
0
24.07.2014, 06:52
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.07.2014, 06:52
Привет! Вот еще темы с ответами:

Разобрать код с++ - C++
Всем доброго времени суток. Дело такое нужно разобрать код явных ошибок нету но при компиляции вижуалка вылетает с ошибкой вроде в хидере...

Разобрать код на с++ - C++
Всем доброго времени суток. Не подскажите в чём у меня ошибка. В общем задание такое я должен создать в готовой программе класс и в нём...

Разобрать код - C++
Помогите пожулйста розобрать код програми struct node { int item; node* next; { item = x; next = t; } }; typadef node *link; ...

Разобрать код - C++
Всем привет помогите разобрать код, программа создана для подсчета что вот это вот означает? double s = 1.0 / 6.0, e, t = 1.0 /...


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

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

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