繁体   English   中英

ifstream :: read不会告诉它真正读取了多少字节?

[英]ifstream::read doesn't tell how many bytes it really reads?

我正在使用ifstream::read来读取文件,

ifstream ifs("a.txt");
char buf[1024];
ifs.read(buf, 1024);

但是a.txt的大小可能小于1000 bytes ,所以我怎么知道从ifs读取了多少字节?

您可以使用std::ifstream::gcount上一次操作提取的字符std::ifstream::gcount

ifstream ifs("a.txt");
char buf[1024];
ifs.read(buf, 1024);
size_t extracted = ifs.gcount();

要么

ifstream ifs("a.txt");
char buf[1024];
size_t extracted = ifs.read(buf, 1024).gcount();

因为read(...)返回*this

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM