gpt4 book ai didi

C-从文本文件中的每一行读取特定数量的单词

转载 作者:行者123 更新时间:2023-11-30 18:40:02 25 4
gpt4 key购买 nike

我只想读取文件中每行的前五个字符(包括空格)。意思是,在指针到达某一行的第 5 个字符后,我希望指针重置到下一行的开头,并继续这样做,直到到达 EOF。

例如,如果我想读取文件中每一行的前 5 个字符,则结果应如下:

Hello World --->  Hello
blah blah ---> blah
Goodbye ---> Goodb

我尝试通过实现 fgets 来实现此目的,但是我不知道如何在读取 5 个字符后重置指针:

while (feof(inputFile) == 0) {
fgets(str, 6, inputFile);

发生的情况是,fgets 在第 5 个字符处停止,但它没有转到下一行,而是继续读取同一行的接下来 5 个字符。

有没有办法让 fgets 在读入 5 个字符后从下一行开始?任何不实现 fgets 的替代方法也是可以接受的。

最佳答案

试试这个

void trimFile(const char *inputFile, const char *outputFile, int length) {
FILE *fin, *fout;
fin = fopen(inputFile, "r");
fout = fopen(outputFile, "w");
char str[length + 1];
while (fgets(str, sizeof str, fin)){
char *p = strchr(str, '\n');
if(p){
fputs(str, fout);
} else {
int ch;
while((ch=fgetc(fin))!='\n' && ch != EOF)
;
fprintf(fout, "%s\n", str);
}
}
fclose(fin);
fclose(fout);
}

关于C-从文本文件中的每一行读取特定数量的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27428159/

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