gpt4 book ai didi

c - fgetc() 在函数中无法正常工作

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

我正在尝试使用 fgetc() 函数逐字符读取文本文件,但它不显示任何输出。这是一个学校项目,仍然以非常非常简单的方式只是为了测试程序的功能。

#include <stdio.h>
#include <stdlib.h>

void fn1(FILE *f);
void fn9(FILE *fp, char, char);

int main() {
FILE *fp = fopen("text.txt", "r");
if (fp == NULL) {
perror("Error: ");
exit(1);
}
fn1(fp);
fn9(fp, '0', '9');

fclose(fp);
return 0;
}

void fn1(FILE *f) {
int num, sum = 0, count = 0;

while (fscanf(f, "%d", &num) == 1) {
if (num > 0) {
sum += num;
count++;
}
}
printf("the avg of positive nums is %.2f", (float) sum / count);
}

void fn9(FILE *fp, char m, char n) {
int ch;
int count1 = 0, count2 = 0;

while ((ch = fgetc(fp)) != EOF) {
if (ch == m)
count1++;
if (ch == n)
count2++;
printf("%c", ch);
if (ferror(fp))
break;
}

printf("\n%c is seen %d times", m, count1);
printf("\n%c is seen %d times", n, count2);

fclose(fp);
}

我测试的文件内容是:

      90
16
-34
100

最佳答案

fn(fp)返回后,fp将指向文件中的最后一个位置。在调用 fn9 之前需要将其重置为文件开头。使用 fseek 将 fp 指向文件的开头,它应该可以工作:)

关于c - fgetc() 在函数中无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53602776/

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