gpt4 book ai didi

c - C 中的 fgets 不返回字符串的一部分

转载 作者:太空宇宙 更新时间:2023-11-04 01:42:24 26 4
gpt4 key购买 nike

我是 C 语言的新手,我正在尝试做一个在文件中搜索字符串的小应用程序。我的问题是我需要打开一个大文件(超过 1GB),里面只有一行,然后 fgets 返回整个文件(我正在用一个 10KB 的文件进行测试)。

实际上这是我的代码:

#include <stdio.h>
#include <string.h>


int main(int argc, char *argv[]) {
char *search = argv[argc-1];

int retro = strlen(search);
int pun = 0;
int sortida;
int limit = 10;

char ara[20];

FILE *fp;
if ((fp = fopen ("SEARCHFILE", "r")) == NULL){
sortida = -1;
exit (1);
}

while(!feof(fp)){
if (fgets(ara, 20, fp) == NULL){
break;
}
//this must be a 20 bytes line, but it gets the entyre 10Kb file
printf("%s",ara);
}

sortida = 1;

if(fclose(fp) != 0){
sortida = -2;
exit (1);
}

return 0;
}

如何在文件中查找字符串?

我已经尝试过使用 GREP 但它没有帮助,因为它返回了位置:ENTIRE_STRING。

我乐于接受想法。

最佳答案

尝试

printf("%s\n",ara);     

还要考虑在使用变量之前初始化变量:

char ara[20]={0x0};

关于c - C 中的 fgets 不返回字符串的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3040243/

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