c - 在 C 中,while 循环如何在没有明确命令的情况下递增?

标签 c

我是 C 的新手,盯着这段代码看了一段时间:

void readEntireFile(){
    int ch;
    FILE *fp;  // pointer to a file type
    fp = fopen("/some/path/file", "r"); // Change to match your path
    ch = getc(fp);
    while (ch != EOF){  // keep looping until End Of File
        putchar(ch);    // print the characters read
        ch = getc(fp);
    }
    fclose(fp);
}

此函数创建一个指向文件的指针,获取第一个字符,并且只要该字符不是 EOF 字符,就打印该字符。这一直持续到到达 EOF 字符。

我的问题很简单:为什么指针每次都继续指向下一个字符?我看不到它是如何增加的,我真的很困惑!

编辑:除了下面的答案,this question也帮助我理解。

最佳答案

int getc ( FILE * stream ); 从流中获取一个字符。

它返回指定流的内部文件位置指示器当前指向的字符。然后内部文件位置指示器前进到下一个字符。 (增量。) 具体是哪一行:

ch = getc(fp);

关于c - 在 C 中,while 循环如何在没有明确命令的情况下递增?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52322825/

相关文章:

c - 具有三个元素的 Execvp

c - "different width due to prototype"警告是什么意思?

c - 数据读取性能优化

c - 对“[function]”的 undefined reference

c - 试图避免切换

c++ - lib 和带有 autoconf 的模块有什么区别

c - 如何连接两个字符串并保存在 C 中的第三个变量中?

c - 需要帮助消费者/生产者共享内存和信号量(c语言)

cublas matrix matrix multiplication 在应用于具有多个 GPU 的一个非常长的维度的矩阵时给出内部错误

C 中带堆栈的计算器段错误(核心已转储)