无法直接输出文件内容,需要先将文件读入到内存,再输出到标准输出上。
可以采用逐个字符读入,每读入一个输出一个的方式。
区分文件类型,操作有所不同。
1 文件本身为文本文件,那么逐个直接输出即可。
FILE *fp = fopen("name.txt", "r");
int c;
while((c=fgetc(fp))!=EOF) putchar(c);
2 文件为二进制文件,直接输出结果会是乱码。这时需要输出二进制值,并自行换行,使得输出美观。
FILE *fp = fopen("name.bin", "rb");
int c;
int i = 0;
while((c=fgetc(fp))!=EOF)
{
printf("0x%02X,", c);//16进制方式输出字符。
i++;
if(i%8==0) printf("\n"); //每输出8个字符换行一次。
}
f=fopen("F:\ai222.CPP","r");
改成
f=fopen("F:\\ai222.CPP","r");
呢?
if(fgetc(f)!=EOF)
printf("dd");
else
printf("%c",fgetc(f));
改成
while(fgetc(f)!=EOF)
printf("%c",fgetc(f));
总之改成这样:
#include
void main()
{
FILE *f;
char temp;
f=fopen("C:\\ai222.CPP","r");
while((temp = fgetc(f)) != EOF)
printf("%c",temp);
fclose(f);
}
f=fopen("F:\ai222.CPP","r");
应改为:f=fopen("F:\\ai222.CPP","r");
#include
#include
void main()
{
FILE *f;
int a;
f=fopen("F:\\ai222.CPP","r");
while ( ( a = fgetc(f) ) !=EOF )
{
printf("%c",a);
}
fclose(f);
}
printf("dd");
这句有问题吧?
建议使用C++的流操作,使用fstream,感觉好用很多哦