我想从文件中读取固定长度的字符。因此我使用 fgets,但 fgets 停在“ " 阅读。即使其中一个是换行符,我如何阅读前 n 个字符?
我尝试在文档中搜索其他函数,但没有找到。
要从流中读取固定数量的字节,您应该使用
fread
:
#include <stdio.h>
size_t fread(void * restrict ptr, size_t size, size_t nmemb,
FILE * restrict stream);
fread
尝试读取每个nmemb
字节的size
元素,并返回成功读取的元素数。它在文件末尾返回 0
。
要确保您的字符串以空字符结尾,您需要编写自己的函数
char *freads(char *buff, size_t len, FILE *fi)
{
size_t readBytes = fread(buff, 1, len - 1, fi);
if(!readBytes) return NULL;
buff[readBytes] = 0;
return buff;
}