如何获得读取的字节数

| 当我像这样从stdin中读取时:
size_t bufSize = 1024;
unsigned char inputBuffer[bufSize];
size_t readNum = 0;
readNum = fread(inputBuffer, sizeof(unsigned char) * bufSize, 1, stdin);
在readNum中存储的对象数,这意味着当我从stdin 1024字节读取时,readNum的值为1。但是,当我从stdin <1024字节读取时,readNum的值为0。问题是,我如何识别多少小于1024时,从stdin读取字节?     
已邀请:
使用
readNum = fread(inputBuffer, sizeof(unsigned char), bufSize, stdin);
您正在尝试读取
bufSize
个元素,每个元素的大小为
sizeof(char)
-而不是一个元素的大小为
bufSize * sizeof(char)
-因此您的
fread
调用应该反映出这一点。     
size_t fread ( void * ptr, size_t size, size_t count, FILE * stream );
fread读取给定大小的块,并返回成功读取的块数。 如果要返回读取的字节数,则将块大小设置为1,将块数设置为要读取的字节数:
readNum = fread(inputBuffer, 1, sizeof(unsigned char) * bufSize, stdin);
    
readNum = fread(inputBuffer, 1, sizeof(unsigned char)*bufSize, stdin);
    

要回复问题请先登录注册