c - 指向 char 的指针的问题

标签 c

我的这部分代码似乎有什么问题:

while(c != EOF){    
    c = fgetc(myFile);
    p[i++]=c;
    printf("%c", p[i]);
}

它似乎没有将值存储在 p[i] 中,即使 malloc 成功,并打印垃圾。但是,此代码可以很好地打印字符:

while(c != EOF){    
    c = fgetc(myFile);
    //p[i++]=c;
    printf("%c", c);
}

p 是一个 char* 并且 i 最初是 0。 在问题中问Not getting all characters after reading from file

这里有什么问题?

最佳答案

p[i++] = c 存储字符并递增 i。下一行打印 p[i],但 i 已经递增。试试这个:

while(c!=EOF){    
    c=fgetc(myFile);
    p[i]=c;
    printf("%c",p[i]);

    i++;
}

作为旁注,您可能会重写它

while((c = fgetc(stdin)) != EOF)
    *p++ = c;

关于c - 指向 char 的指针的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7763408/

相关文章:

c - 运行这个有点奇怪的 c 代码后出现意外的输出。谁能解释这是怎么发生的?

c - 无论如何,我可以在不安装的情况下使用expect吗?

c - 将节点添加到单链表无法正常工作

在 fork 进程中调用读取不起作用 (Linux C)

c - 我如何更改此代码以在没有 strstr 函数的情况下工作?

c - 从 gcc 输出了解汇编

c - 了解如何在 C 中转换 void* 和 int*

c - 生成一个介于 -1 和 1 之间的随机 double

c - 如何使 Gtk+ 窗口背景透明?

c - 管道化读取指令