fscanf函數是干嘛的
fscanf 是系統里的函數,用于從 文本文件 用有格式 方法 讀入數據。
例如:
char str[10];
int n;
float a;
FILE *fp;
fp=fopen("abc.txt","r"); // 打開abc.txt 文件,用來讀
fscanf(fp,"%s %d %f",str,&n,&a);
fp -- abc.txt 文件 輸入流
%s %d %f -- 格式,一個字符串,一個整型,一個 浮點型
輸入到三個變量 str,n,a 里。
-------------
如何使用fscanf?
功 能: 從一個流中執行格式化輸入\x0d\x0a 用 法: int fscanf(FILE *stream, char *format,[argument...]);\x0d\x0a int fscanf(文件指針,格式字符串,輸入列表);\x0d\x0a 返回值:整型,數值等于[argument...]的個數\x0d\x0a 程序例:\x0d\x0a #include \x0d\x0a #include \x0d\x0a int main(void)\x0d\x0a {\x0d\x0a int i;\x0d\x0a printf("Input an integer: ");\x0d\x0a if (fscanf(stdin, "%d", &i))\x0d\x0a printf("The integer read was: %d\n",\x0d\x0a i);\x0d\x0a el\x0d\x0a {\x0d\x0a fprintf(stderr, "Error reading an \\x0d\x0a integer from stdin.\n");\x0d\x0a exit(1);\x0d\x0a }\x0d\x0a return 0;\x0d\x0a }\x0d\x0a 返回EOF如果讀取到文件結尾。
fscanf函數的用法
用法:int fscanf(FILE*stream,char*format,[argument...]);解析:int fscanf(文件指針,格式字符串,輸入列表);返回值: 類型是整型,成功讀入的參數的個數。新建data.txt文件,存入3組坐標,運行程序并輸出結果。
fscanf函數的用法
fscanf第一個參數需要一個文件指針,為了查看實驗效果,這里先新建一個名為test.txt的文本文件,放在源代碼的文件夾,輸入如下內容:
123
123.456
Hello world !
要對文件操作,必須將該文件打開:
fp = fopen("test.txt", "r");
同時使用完畢后不要忘記使用fclo關閉文件。
test.txt第一行保存的是一個整數,所以可以使用fscanf先讀取一個整數:
fscanf(fp, "%d", &num);
test.txt第二行保存了一個浮點數,按照浮點數的格式進行讀取:
fscanf(fp, "%f", &fNum);
需要注意的是,由于浮點數位于第二行,所以要想讀取這個浮點數,應當先把第一個數讀完,否則讀取的回事123.000000
同樣可以使用類似的方法讀取位于第三行的字符串:
fscanf(fp, "%s", str);
但是,從程序的運行結果發現,第三行存儲的是Hello world !,而實際運行結果只有“Hello”,這表明fscanf遇到空格會終止本次讀操作。
當將fscanf第一個參數設定為stdin時,將實現和scanf函數相同的效果:
fp = stdin;//設置fp為標準輸入
fscanf(fp, "%d", &num);//從fp讀取一個整數
C語言fscanf的用法是什么
用 法: int fscanf(FILE *stream, char *format,[argument...])。
1、fscanf()的format參數允許的格式為:“%[*][width][modifiers]type”。[]中的內容根據需要供選,可缺省,%type必須要有,不可省。
2、“format”是C字符串,由“空格”、“非空格”及“轉換符”組成。具體格式為%[*][width][modifiers]type,與“format”中“轉換符”對應變量地址的列表,兩地址間用逗號隔開。
fscanf()對空格的處理示例代碼如下:
re=fscanf(pF,"%d%d%d",&oLine.p,&oLine.l,&oLine.x);
if(3==re){
//Printonstdout
printf("%d %d %d
",oLine.p,oLine.l,oLine.x);
}
fscanf的用法
fscanf是一個用于從流中執行格式化輸入的函數。
函數聲明:int fscanf(FILE*stream,constchar*format,[argument...]);
參數:
FILE *stream:文件指針;
char *format:格式字符串;
[argument...]:輸入列表。
返回值:整型,表示成功讀入的參數的個數
功能:
從一個流中執行格式化輸入,fscanf遇到空格和換行時結束,注意空格時也結束。
注意:這與fgets有區別,fgets遇到空格不結束。
格式化字符說明:
%d:讀入一個十進制整數.
%i :讀入十進制,八進制,十六進制整數,與%d類似,但是在編譯時通過數據前置或后置來區分進制,如加入“0x”則是十六進制,加入“0”則為八進制。例如串“031”使用%d時會被算作31,但是使用%i時會算作25.
%u:讀入一個無符號十進制整數.
%f %F %g %G : 用來輸入實數,可以用小數形式或指數形式輸入.
%x %X: 讀入十六進制整數.
%o': 讀入八進制整數.
%s : 讀入一個字符串,遇空字符‘\0'結束。
%c : 讀入一個字符。無法讀入空值。空格可以被讀入。
附加格式說明字符表修飾符說明
L/l 長度修飾符 輸入"長"數據
h 長度修飾符 輸入"短"數據
實例:
#include <stdlib.h>
#include <stdio.h>
int main(void)
{
int i;
printf("Input an integer:");
/*read an integer from the standard input stream*/
if(fscanf(stdin,"%d",&i))
printf("The integer read was:%d\n",i);
el
{
fprintf(stderr,"Error reading an\
integer from stdin.\n");
exit(1);
}
return0;
}
C語言中fscanf()的用法
功 能: 從一個流中執行格式化輸入\x0d\x0a 用 法: int fscanf(FILE *stream, char *format,[argument...]);\x0d\x0a int fscanf(文件指針,格式字符串,輸入列表);\x0d\x0a 返回值:整型,數值等于[argument...]的個數\x0d\x0a 程序例:\x0d\x0a #include \x0d\x0a #include \x0d\x0a int main(void)\x0d\x0a {\x0d\x0a int i;\x0d\x0a printf("Input an integer: ");\x0d\x0a if (fscanf(stdin, "%d", &i))\x0d\x0a printf("The integer read was: %d\n",\x0d\x0a i);\x0d\x0a el\x0d\x0a {\x0d\x0a fprintf(stderr, "Error reading an \\x0d\x0a integer from stdin.\n");\x0d\x0a exit(1);\x0d\x0a }\x0d\x0a return 0;\x0d\x0a }\x0d\x0a 返回EOF如果讀取到文件結尾。