如何让fgets不停止读取

问题描述 投票:0回答:2

我想从文件中读取固定长度的字符。因此我使用 fgets,但 fgets 停在“ " 阅读。即使其中一个是换行符,我如何阅读前 n 个字符?

我尝试在文档中搜索其他函数,但没有找到。

c fgets
2个回答
1
投票

要从流中读取固定数量的字节,您应该使用

fread
:

#include <stdio.h>

size_t fread(void * restrict ptr, size_t size, size_t nmemb,
             FILE * restrict stream);

fread
尝试读取每个
nmemb
字节的
size
元素,并返回成功读取的元素数。它在文件末尾返回
0


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;
}
© www.soinside.com 2019 - 2024. All rights reserved.