sgetn 不为空终止字符串

sgetn Doesn't Null Terminate String

本文关键字:终止 字符串 sgetn      更新时间:2023-10-16

sgetnchar*作为其第一个参数并向其写入字符。它不会将尾部''写入char*

这种行为似乎与我每隔一次都能找到char*的行为不一致。然而,它在Clang、gcc和Visual Studio中是一致的,所以我不敢相信这是所有编译器都有的错误。

标准不要求后面的''char*有什么原因吗?

[实际示例]

因为它可以用于读取任意数据,而不仅仅是文本。

std::istream::read函数为例,它接受char*参数,但可用于读取任意数据,包括二进制数据。当从二进制文件读取时,你不会期望它添加字符串终止符吗?