Java具有字节流类(Stream
及其子类)和字符流类(Reader
和Writer
及其子类)。
C ++是否同时具有字节流类和字符流类?
http://www.cs.sjsu.edu/~pearce/modules/lectures/oop/streams/streams.htm
标准C ++流库提供输入流,输出流和输入输出流类。这些都是面向字符的流。
意味着C ++仅具有字符流类,而没有字节流类?
谢谢。
答案 0 :(得分:2)
请记住,在C ++中,表示字节的规范方式是char
,它是整数类型。 1
C ++标准提供了Input/Output Library,它提供了基本的输入和输出流。这些基本流是模板,并且使用模板参数选择它们处理的“字符”类型。通常,它们用于char
和“宽字符” wchar_t
风味中。 Other character types像char8_t
和char32_t
一样存在,但是它们的用法并不常见。
例如,可以使用basic_fstream
对象完成C ++中的文件输入和输出,该对象将某些类型CharT
作为模板参数。为了方便起见,我们有两个别名:fstream
是basic_fstream<char>
的简写,而wfstream
是basic_fstream<wchar_t>
的简写。在其他流(例如字符串流以及标准输入和输出流)中也可以看到这种模式。
乍一看,“宽字符” wchar_t
似乎非常适合处理Unicode字符串。不要上当。 C ++中的Unicode支持为seriously lacking。
1。诚然,现在有一个标准的std::byte
,但是它的用法相当有限。它既不是整数类型也不是字符类型。
注意:请勿在同一程序中混用cout
和wcout
。 Here's why。