怎樣向文件讀寫字符
函數名 | 調用形式 | 功能 |
fgetc | fgetc(fp) | 從fp指向的文件讀入一個字符 |
fputc | fput(ch,fp) | 把字符ch寫到文件指針變量fp所指向的文件中 |
-----------------------------------------------------------------------實例代碼---------------------------------------------------------------------------
1、向文件添加數據
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fp;
char ch,filename[20];
printf("請輸入所用的文件名:");
scanf("%s",filename);
if((fp=fopen(filename,"a"))==NULL) //打開輸出文件並使fp指向此文件
{
printf("無法打開文件\n"); //如果文件出錯,就輸出此文件無法打開的信息
exit(0); //終止程序
}
ch=getchar(); //用來接收最後輸入的回車符
printf("請輸入一個將要存儲到磁盤的字符串(以#結束):");
ch=getchar(); //接收從鍵盤輸入的第一個字符
while(ch!=‘#‘) //當輸入‘#‘時結束循環
{
fputc(ch,fp); //向磁盤文件輸出一個字符
putchar(ch); //將輸出的字符顯示在屏幕上
ch=getchar(); //再接收下一個從鍵盤輸入的字符
}
fclose(fp); //關閉文件
putchar(10); //向屏幕輸出一個換行符
return 0;
}
其中:
fp=fopen(filename,"a") 是指向文件添加數據
fp=fopen(filename,"w")是指向文件寫數據
fp=fopen(filename,"r")是指讀取文件的數據
----------------------------------------------------------------------分割線-------------------------------------------------------------------------------------
2、將in指向的文件中的數據復制到out指向的文件
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *in,*out; //定義指向FILE類型文件的指針變量
char ch,infile[20],outfile[20]; //定義兩個字符數組,分別存放兩個數據文件名
printf("輸入輸入文件的名字");
scanf("%s",infile); //輸入一個輸入文件的名字
printf("輸入輸出文件的名字");
scanf("%s",outfile); //輸入一個輸出文件的名字
if((in=fopen(infile,"r"))==NULL) //打開輸入文件
{
printf("無法打開文件");
exit(0);
}
if((out=fopen(outfile,"w"))==NULL) //打開輸出文件
{
printf("無法打開文件");
exit(0);
}
while(!feof(in)) //如果遇到輸入文件的結束標誌
{
ch=fgetc(in); //從輸入文件讀入一個字符,暫時放在變量ch中
fputc(ch,out); //將ch寫到輸出文件中
putchar(ch); //將ch顯示在屏幕上
}
putchar(10); //完全顯示後換行
fclose(in); //關閉文件
fclose(out);
return 0;
}
1)在訪問磁盤文件時,是逐個字符進行的,訪問完一個字節後,當前訪問位置就指向下一個字符
2)為了知道對文件的訪問是否完成,只需看文件讀寫位置是否移動到文件的末尾。用feof函數可以檢查到文件讀寫位置標記是否移動到了末尾,既磁盤文件是否結束。如果是函數值為0。
3)運行結果是將將in指向的文件中的數據復制到out指向的文件。前提是in指向的文件必須存在,out指向的文件如果不存在就新建立一個文件
怎樣向文件讀寫字符