Почему fstream читать и записать функции ожидают char*, а не без подписи char*?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Почему fstream читать и записать функции ожидают char*, а не без подписи char*?

Сообщение Anonymous »

Спецификация гласит следующее для создания объекта с использованием существующего хранилища - [intro.object#3] < /em>: < /p>

Если создан полный объект ([expr.new]) в хранилище, связанном с другим объектом E типа «массив n unsigned char» или типа «rafse of n std :: bytte», (cst hy.shs.s. Массив предоставляет хранилище для созданного объекта [...]

[basic.types.general#4] , также конкретно относится к:

n unsigned char -obj /> В качестве потенциально достоверного представления объекта полного объекта t.
из вышеупомянутых параграфов можно предположить, что создание объекта в хранилище, связанном с другим объектом e , который не типа «массив N unsigned char» или «Array of n Std :: Неопределенным поведением не определяется, чтобы не определить поведение, не определяемое, не определено, что не определено, не определено, не определено. Действителен. Написать потоковые функции вместо беспигенерации char*?

Код: Выделить всё

using ostream   = basic_ostream;
using iostream  = basic_iostream;
iStream.Generalí:

Код: Выделить всё

using char_type = charT;
basic_istream& read(char_type* s, streamsize n);
HoStream.GeneralTy:
using char_type = charT;
basic_ostream& write(const char_type* s, streamsize n);
< /code>
Если char* не действителен или не рекомендуется для буфера, почему бы не использовать unsigned char* < /code> здесь?>

Подробнее здесь: https://stackoverflow.com/questions/796 ... igned-char
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»