怎样输出文件中指定的内容
发布时间: 2023-03-07 12:05:25
❶ 怎样用C语言输出一文件的内容
无法直接输出文件内容,需要先将文件读入到内存,再输出到标准输出上。
可以采用逐个字符读入,每读入一个输出一个的方式。
区分文件类型,操作有所不同。
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个字符换行一次。
}
❷ C语言中如何输出文件中的指定行全部内容
先用将文件中所有内容读到二维字符数组buf[][]中。
要输出第x行的内容,直接输出buf[x-1]即可
全部读入还有一个好处,当要修改文件内容时,先读入数组,在数组中做修改,再写回文件,远比在文件中直接修改方便得多。
#include<stdio.h>
#defineM10010
#defineN256
charbuf[M][N];
intmain(){
FILE*file;
charfileName[50]="in.txt";//文件名
//读入
file=fopen(fileName,"r");//打开文件
if(file==NULL)//打开文件失败
return1;
intn=0;
while(fgets(buf[n],N,file)!=NULL){//依次读取文件内容,第n+1行读到buf[n]中,直到读到文件结束
n++;
}
fclose(file);//关闭文件
//显示第x行
inti,x;
scanf("%d",&x);//读入要显示的是第几行
printf("%s",buf[x-1]);//显示该行
//修改
buf[0][0]='X';
//...
//写回
file=fopen(fileName,"w");//打开文件
if(file==NULL)//打开失败
return1;
for(i=0;i<n;i++)//buf中的内容写到文件
fprintf(file,"%s",buf[i]);
fclose(file);//关闭并保存文件
return0;
}
热点内容