c - 为什么我在文件开头有一个连字符?

标签 c file-io

我正在学习 C,我尝试构建一个输出自己源代码的程序。这是我的来源:

#include <stdio.h>

int S = 512;

int main(){
    FILE * fp;
    fp = fopen("hello.c","r");
    char * line = (char *) malloc(S);
    int i = 0;
    while (i == 0)
    {
        i = feof(fp);
        printf("%s",line);
        fgets(line,S,fp);
    }
    fclose(fp);
}

我使用了 tcc 编译器并得到了这个输出: code outputs source correctly but adds a hyphen at the start

但是请注意,我在 #include 之前有一个连字符。其余输出是正确的。

所以有人可以解释为什么我有这个连字符吗?

最佳答案

您在阅读任何内容之前打印第一行。

#include <stdio.h>

int main(){
    FILE *fp = fopen("hello.c", "r");
    char line[256];
    while (fgets(line, sizeof line, fp) != NULL)
        printf("%s",line);
    fclose(fp);
    return 0;
}

关于c - 为什么我在文件开头有一个连字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26829352/

相关文章:

java - Java中的FileReader和ready方法

C中计算高效的三维数组

c - 从链表中删除给定节点

c - 如何在 ANSI C 89 中读取/写入单个文件

python - 仅当文件已存在时才追加到文件

c++ - 从具有多列整数的文件中读取并将它们放入数组中

c - c中for循环问题中的特殊字符读取

c - Socket 服务器关闭命令的连接

c - 您如何分析多核处理器的所有内核?

node.js - Node.js 的文件存储抽象模块?