從文件內(nèi)容讀入和輸出可以使用fscanf、fprintf
創(chuàng)新互聯(lián)建站自2013年創(chuàng)立以來,先為廣德等服務(wù)建站,廣德等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為廣德企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
如:
fscanf(fp,
"%d",
num);
//從文件fp讀入一個整數(shù)到num變量
fprintf(fp,
"%d",
num);
//將num變量的值輸出到文件fp
屏幕也可以看作一個文件流,輸入是stdin,輸出是stdout,如輸出到屏幕,就是:
fprintf(stdout,
"%d",
num);
#include stdio.h
#define MAX 50 /* 文件名長度最大為 MAX 個字符 */
#define BUFFERLEN /* 文件緩沖區(qū)長度最大為 BUFFERLEN 個字符 */
void main( )
{
FILE * fpr ; /* 定義一個文件指針變量 fpr */
char my_filename[MAX], buffer[BUFFERLEN] ;
gets(my_filename) ; /* 從鍵盤上輸入要打開的文本文件名 */
fpr = fopen(my_filename, "r" ) ; /* r:以文本方式打開文件 */
if( fpr == NULL ) /* 若文件打開失敗,則輸出錯誤信息,并直接退出程序 */
{
printf("Can't open %s for read !\n", my_filename ) ;
exit(1) ;
}
fgets(buffer, BUFFERLEN, fpr ) ; /* 從文本文件中讀取一行數(shù)據(jù) */
while( !feof(fpr) ) /* 當文件沒有結(jié)束時,輸出一行文本內(nèi)容到屏幕 */
{
printf("%s", buffer) ;
fgets(buffer, 500, fpr) ; /* 再從文本文件中讀取下一行數(shù)據(jù) */
}
fclose(fpr) ; /* 當整個文件內(nèi)容讀取結(jié)束時,關(guān)閉文件指針 */
}
一:格式輸出函數(shù)printf()
1、調(diào)用形式一般為:printf("格式化控制字符串",輸出表列);
2、格式化控制字符串用于指定輸出格式,它有三種形式:
1、格式說明符:規(guī)定了相應(yīng)輸出表列內(nèi)容的輸出格式,以%打頭,如%d、%o等
2、轉(zhuǎn)義字符:用來輸出轉(zhuǎn)義字符所代表的控制代碼或者特殊字符,比如常用的‘\n'、‘\t'
3、普通字符:需要原樣輸出的字符。
3、輸出表列為若干需要輸出的數(shù)據(jù)項,它與格式說明符在數(shù)量和類型上一一對應(yīng);
4、格式字符m指定輸出數(shù)據(jù)所占寬度,n對實數(shù)表示輸出n位小數(shù),對字符串表示截取的字符個數(shù),+表示右對齊,通常省略。
—表示左對齊,l用于長整型數(shù)據(jù),可加在d、o、x、u前,更多格式說明符及其組合形式如下所示:
格式字符
數(shù)據(jù)對象
輸出形式
數(shù)據(jù)輸出方法
%(+)-md
int
unsigned
int
short
unsigned
short
char
十進制整數(shù)
1、無m按實際位數(shù)輸出
2、有m輸出m位;超過m位,按實際位數(shù)輸出,不足補空格
3、有+(默認為+)右對齊(左補空格)
4、有-左對齊(右補空格)
%(+)-mo
八進制整數(shù)
%(+)-mx
十六進制整數(shù)
%(+)-mu
無符號整數(shù)
%(+)-mld
long
unsigned
long
十進制整數(shù)
%(+)-mlo
八進制整數(shù)
%(+)-mlx
十六進制整數(shù)
%(+)-mlu
無符號整數(shù)
%(+)-m.nf
float
double
十進制小數(shù)
%(+)-m.ne
十進制指數(shù)
%(+)-g
自動選用%f和%e中較短的輸出寬度輸出單、雙精度浮點數(shù)
%(+)-mc
char
int
short
單個字符
1、無m輸出單個字符
2、有m輸出m位,補空格
3、有+(默認為+)右對齊(左補空格)
4、有-左對齊(右補空格)
%(+)-m.ns
字符串
一串字符
1.無m、n按實際字符串輸出全部字符
2、有m、n僅輸出前n個字符,補空格
3.有+(默認為+)右對齊(左補空格)
4、有-左對齊(右補空格)
二:格式輸入函數(shù)scanf()
1、
調(diào)用格式一般為:scanf("格式化控制字符串",地址表列);
2、格式化控制字符串和printf()函數(shù)含義相似,所不同的是它是對輸入格式進行控制;
3、地址表列是有若干等待輸入的數(shù)據(jù)所對應(yīng)的內(nèi)存單元地址組成,由逗號隔開,一般形式為a,a為變量;
4、地址表列在數(shù)量和類型上和格式化控制字符串中的格式說明符一一對應(yīng);
5、格式字符h表示輸入短型數(shù)據(jù),可用在d、o、x前面,m指定輸入數(shù)據(jù)所占寬度,
*表示對應(yīng)的數(shù)據(jù)項讀入后不賦給相應(yīng)的變量,更多格式說明符及其組合如下
格式字符
數(shù)據(jù)對象
輸入形式
數(shù)據(jù)輸入方法
%md
int
short
unsigned
int
unsigned
short
十進制整數(shù)
1、無m按實際位數(shù)輸入
2、有m輸入m位,不足m則跟回車鍵
%mo
八進制整數(shù)
%mx
十六進制整數(shù)
%mld
long
unsigned
long
十進制整數(shù)
%mlo
八進制整數(shù)
%mlx
十六進制整數(shù)
%mlf
float
double
十進制整數(shù)
%mle
%mc
char
單個字符
1、無m取單個字符
2、有m輸入m位,僅取第一個字符
%ms
字符串
一串字符
1、無m取回車或空格前若干字符
2、有m僅取前m字符
以下程序能將文件原文輸出到屏幕:
#includestdio.h
#includestdlib.h
int?main()
{
FILE?*fp;
char?ch;
fp=fopen("D:\\f1.txt","r");
if(!fp)
{
printf("can't?open?file\n");
exit(1);
}
while?((ch=fgetc(fp))!=EOF)
printf("%c",?ch);
fclose(fp);
return?0;
}