我的这部分代码似乎有什么问题:
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/