Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.05.2008, 19:20   #1
Deatz
 
Регистрация: 06.05.2008
Сообщений: 4
Восклицание Потоки и символ конца строки

Всем привет!

Давайте рассмотрим фрагмент простой программы:

using namespace std;

fstream out("jkl.txt", ios_base:: out);

out.put(63);
out.put(10);
out.put(79);

out.close();

Теперь открываем файл "jkl.txt" шестнадцатиричным редактором. В нём мы видим следующее:

3F 0D 0A 4F

3F и 4F - это наши числа до и после десятки, но откуда взялись два байта посередине? Судя по всему, 10 - это спец-символ. И я убедился, что:

out.put(10);

даёт абсолютно такой же эффект, как и

out << endl;

Теперь мой вопрос: как это отключить? Мне нужно, чтобы результатом out.put(10); был байт с десяткой в выходном потоке.

Спасибо за ваше внимание.
Deatz вне форума Ответить с цитированием
Старый 07.05.2008, 00:21   #2
vvviperrr
Тупой студент
Форумчанин
 
Аватар для vvviperrr
 
Регистрация: 12.05.2007
Сообщений: 614
По умолчанию

дело в том, что медод put записывает в поток чар, а не инт.
пиши и читай так:
Код:
	fstream out("dde.txt", ios_base::in | ios_base::binary);
	int i = 48;
	out.write((char*)&i, sizeof(i));
	out.close();

	ifstream out2("dde.txt", ios_base::binary);
	int j;
	out2.read((char*)&j, sizeof(int));
	out2.close();
vvviperrr вне форума Ответить с цитированием
Старый 07.05.2008, 18:41   #3
Deatz
 
Регистрация: 06.05.2008
Сообщений: 4
По умолчанию

Спасибо. Я действительно забыл про флаг binary...
Deatz вне форума Ответить с цитированием
Старый 07.05.2008, 20:02   #4
vvviperrr
Тупой студент
Форумчанин
 
Аватар для vvviperrr
 
Регистрация: 12.05.2007
Сообщений: 614
По умолчанию

да дело и не во флаге бинари, ты просто записывал код чара по аски таблице символов, а думал что пишешь инт. я на самом деле fstream ом не пользуюсь, только FILE*, или винапишными средствами
vvviperrr вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удвоить каждый символ строки, потом перевернуть строку Didi Помощь студентам 6 20.05.2008 15:33
как присвоить char'у символ перевода строки? Retiz Помощь студентам 6 06.04.2008 00:05
Макрос - до конца данных jungo Microsoft Office Excel 6 08.02.2008 09:47
удаление текста с конца Lonix Общие вопросы Delphi 7 12.07.2007 14:00