怎样用C语言输出一文件的内容

2024-12-20 06:02:13
推荐回答(5个)
回答1:

无法直接输出文件内容,需要先将文件读入到内存,再输出到标准输出上。

可以采用逐个字符读入,每读入一个输出一个的方式。
区分文件类型,操作有所不同。

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个字符换行一次。

}

回答2:

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);
}

回答3:

f=fopen("F:\ai222.CPP","r");
应改为:f=fopen("F:\\ai222.CPP","r");

回答4:

#include
#include

void main()
{
FILE *f;
int a;
f=fopen("F:\\ai222.CPP","r");
while ( ( a = fgetc(f) ) !=EOF )
{
printf("%c",a);
}
fclose(f);
}

回答5:

printf("dd");
这句有问题吧?
建议使用C++的流操作,使用fstream,感觉好用很多哦