1

我试图让 fgetc 命令在一个非常简单的 for 循环中工作。虽然(双关语)它在 while 循环中工作,但在 for 循环中不起作用,我不知道为什么。

它应该只抓取 txt 文件中的任何内容并以len. 为了比较原始信息,我创建了一个 for 循环,该循环运行len多次以再次获取 fgetc 并打印出原始消息。

循环运行,但我不知道为什么它没有将 fgetc 值提取到 char 源中。

#include <stdio.h>

int len;
char ch;
char source;

int main(void)
{
    FILE* text = fopen("welt.txt", "r");
    
    while((ch = fgetc(text)) != EOF)
    {
        printf("%c", ch + len);
        len++;
    }
    
    printf("\n%i\n", len);
    
    for (int i = 0; i < len; i++)
    {
        source = fgetc(text);
        printf("%c", source);
    }
}
4

1 回答 1

0

添加倒带以将 fgetc 重置到 txt 文件中的第一个位置就可以了。

rewind(text);

for (int i = 0; i < len; i++)
{
    source = fgetc(text);
    printf("%c", source);
}
于 2021-01-14T12:53:02.517 回答