怎樣輸出文件中指定的內容
發布時間: 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;
}
熱點內容