gpt4 book ai didi

c - fread 不读取整个文件

转载 作者:行者123 更新时间:2023-11-30 16:29:37 24 4
gpt4 key购买 nike

我使用 fread 读取整个文件,但我只得到第一个文件,这是为什么?

我的代码:

#define MAXBUFLEN 4096

int main(){
int ret =0;
char source[MAXBUFLEN + 1];
FILE *fp = fopen("test", "r");

if (fp != NULL)
{
rewind(fp);
ret = fread(source, 1, MAXBUFLEN, fp);
printf("ret : %d %s",ret,source);
fclose(fp);
}
return 0;

}

文件文本:

/# cat test
/usr/sbin/sshd-p 1234-o LoginGraceTime=30-o ClientAliveInterval=600-o ClientAliveCountMax=0-o TCPKeepAlive=no-o MaxSessions=1-o MaxStartups=1-o MaxAuthTries=3

我的程序输出:

ret : 167  /usr/sbin/sshd

读取整个文件的最简单方法是什么? (这不是标准的,也不以\n 结尾)?

最佳答案

答:这个文件中每个单词之间有0,它不是标准单词,而是Linux中单独记录的^@。代码已修复:

#include <stdio.h>

void removeNewLine(char * str,int len);

#define MAXBUFLEN 4096

int main(){
char source[MAXBUFLEN + 1];
FILE *fp = fopen("test", "r");
int ret =0;
if (fp != NULL)
{
rewind(fp);
ret = fread(source, 1,MAXBUFLEN, fp);
removeNewLine(source,ret);
fclose(fp);
}
return 0;
}

void removeNewLine(char * str,int len){
int i=0;
for(i=0; i<len;i++) {
if((int)str[i]==0 )
{
str[i]=' ';
}
}
str[len] = 0;
printf("%s",str);
}

关于c - fread 不读取整个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51707110/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com