當前位置:首頁 » 編程語言 » fscanf函數c語言的用法
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

fscanf函數c語言的用法

發布時間: 2022-07-07 17:30:00

c語言 fscanf函數使用

沒打看懂你說的什麼意思, 只是感覺你寫的有個地方有問題,你在往文件中寫的時候fprintf(f1,"%d\n",temp);是每個字後面都一個回車, 而在讀的時候又按照fscanf(f1,"%d",&temp); 這種沒有回車的形式讀的 ,當然會出問題了, 我幫著改了一下, 你看下行不...

#include <stdio.h>
#include <stdlib.h>

void main()
{
int i;
char temp;
FILE *f1; // source file (bmp)
if((f1=fopen("write.hex","w"))==NULL)
{
printf("f1 error\n");
exit(0);
}
for (i=0;i<8;i++)
{
temp = i;
fprintf(f1,"%d",temp);
}
fclose(f1);
if((f1=fopen("write.hex","r"))==NULL)
{
printf("f1 error\n");
exit(0);
}
for (i=0;i<100;i++)
fscanf(f1,"%d",&temp);
fclose(f1);
}

Ⅱ 如何使用fscanf

fscanf

簡述:C語言中基本的文件操作

函數名:fscanf

功 能:從一個流中執行格式化輸入,fscanf遇到空格和換行時結束,注意空格時也結束。這與fgets有區別,fgets遇到空格不結束。

返回值:整型,成功返回讀入的參數的個數,失敗返回EOF(-1)。

用法:

FILE *stream:文件指針

char *format:格式字元串

[argument...]:輸入列表

格式字元說明

常用基本參數對照:

%d:讀入一個十進制整數.

%i :讀入十進制,八進制,十六進制整數,與%d類似,但是在編譯時通過數據前置或後置來區分進制,如加入"0x"則是十六進制,加入"0"則為八進制。例如串"031"使用%d時會被算作31,但是使用%i時會算作25.

%u:讀入一個無符號十進制整數.

%f %F %g %G : 用來輸入實數,可以用小數形式或指數形式輸入.

%x %X: 讀入十六進制整數.

%o': 讀入八進制整數.

%s : 讀入一個字元串,遇空字元''結束。

%c : 讀入一個字元。無法讀入空值。空格可以被讀入。

附加格式說明字元表修飾符說明

L/l 長度修飾符 輸入"長"數據

h 長度修飾符 輸入"短"數據

示例說明

如果要求從標准輸入中輸入一串字元串和一個整型數,那麼參數"%s%d"表示什麼呢?默認情況下,在終端上(這里假設程序為控制台應用程序)輸入第一個參數的值的時候敲下回車,則在第二行輸入的為第二個參數值,採用這種輸入方法那麼格式字元的形式就無關緊要了。[1]

這里要特殊說明的是如果參數在同一行給出,那麼格式字元的參數與終端的輸入會有什麼關系。舉個例子:如果格式字元為"%s+%d",那麼參數的輸入就應該為 string + integer。

Ⅲ 求C語言 fscanf的用法,

你的理解錯了,這是將文件中的數據輸入到程序中的變數,這個函數是一個輸入函數,參考sscanf用法。
sscanf示例如下,得到n=1,sz="asdf"
{
char* str = "1 asdf";
int n;
char sz[10];
sscanf(str, "%d%s", &n, &sz);
printf("%d %s", n, sz);
}
fscanf示例如下,加入pf是指向文件內容為1 asdf的文件指針,得到n=1,sz="asdf"
{
int n;
char sz[10];
sscanf(pf, "%d%s", &n, &sz);
printf("%d %s", n, sz);
}

Ⅳ c語言fscanf用法

#include<stdio.h>
#include<stdlib.h>
intmain()
{
FILE*fp;
intid;
charstu;
if((fp=fopen("c:/stu.txt","w+"))==NULL)
{
printf("打開文件,出現錯誤");
exit(1);
}
scanf("%d%s",&id,&stu);
fprintf(fp,"%d %s",id,&stu);
id=0;
stu=0;
rewind(fp);//寫完之後不能馬上讀,需要重置fp到文件頭
fscanf(fp,"%d%s",&id,&stu);//少了&
printf("%d %s",id,stu);
return0;
}

Ⅳ 請問C語言fscanf的用法

函數名: fscanf

功 能: 從一個流中執行格式化輸入
用 法: int fscanf(FILE *stream, char *format[,argument...]);

程序例:
#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: %i\n",
i);
else
{
fprintf(stderr, "Error reading an \
integer from stdin.\n");
exit(1);
}
return 0;
}

Ⅵ C語言Fopen函數的用法

fopen函數用來打開一個文件,其調用的一般形式為:
文件指針名=fopen(文件名,使用文件方式);
其中,
「文件指針名」必須是被說明為FILE 類型的指針變數;
「文件名」是被打開文件的文件名;
「使用文件方式」是指文件的類型和操作要求。
「文件名」是字元串常量或字元串數組。
例如:
FILE *fp;
fp=("file a","r");
其意義是在當前目錄下打開文件file a,只允許進行「讀」操作,並使fp指向該文件。
又如:
FILE *fphzk
fphzk=("c:\\hzk16","rb")
其意義是打開C驅動器磁碟的根目錄下的文件hzk16,這是一個二進制文件,只允許按二進制方式進行讀操作。兩個反斜線「\\ 」中的第一個表示轉義字元,第二個表示根目錄。
使用文件的方式共有12種,下面給出了它們的符號和意義。
文件使用方式
意義
「rt」
只讀打開一個文本文件,只允許讀數據
「wt」
只寫打開或建立一個文本文件,只允許寫數據
「at」
追加打開一個文本文件,並在文件末尾寫數據
「rb」
只讀打開一個二進制文件,只允許讀數據
「wb」
只寫打開或建立一個二進制文件,只允許寫數據
「ab」
追加打開一個二進制文件,並在文件末尾寫數據
「rt+」
讀寫打開一個文本文件,允許讀和寫
「wt+」
讀寫打開或建立一個文本文件,允許讀寫
「at+」
讀寫打開一個文本文件,允許讀,或在文件末追加數據
「rb+」
讀寫打開一個二進制文件,允許讀和寫
「wb+」
讀寫打開或建立一個二進制文件,允許讀和寫
「ab+」
讀寫打開一個二進制文件,允許讀,或在文件末追加數據
對於文件使用方式有以下幾點說明:
1) 文件使用方式由r,w,a,t,b,+六個字元拼成,各字元的含義是:
r(read): 讀
w(write): 寫
a(append): 追加
t(text): 文本文件,可省略不寫
b(banary): 二進制文件
+: 讀和寫
2) 凡用「r」打開一個文件時,該文件必須已經存在,且只能從該文件讀出。
3) 用「w」打開的文件只能向該文件寫入。若打開的文件不存在,則以指定的文件名建立該文件,若打開的文件已經存在,則將該文件刪去,重建一個新文件。
4) 若要向一個已存在的文件追加新的信息,只能用「a」方式打開文件。但此時該文件必須是存在的,否則將會出錯。
5) 在打開一個文件時,如果出錯,fopen將返回一個空指針值NULL。在程序中可以用這一信息來判別是否完成打開文件的工作,並作相應的處理。因此常用以下程序段打開文件:
6) if((fp=fopen("c:\\hzk16","rb")==NULL)
{
printf("\nerror on open c:\\hzk16 file!");
getch();
exit(1);
}
這段程序的意義是,如果返回的指針為空,表示不能打開C盤根目錄下的hzk16文件,則給出提示信息「error on open c:\ hzk16 file!」,下一行getch()的功能是從鍵盤輸入一個字元,但不在屏幕上顯示。在這里,該行的作用是等待,只有當用戶從鍵盤敲任一鍵時,程序才繼續執行,因此用戶可利用這個等待時間閱讀出錯提示。敲鍵後執行exit(1)退出程序。
7) 把一個文本文件讀入內存時,要將ASCII碼轉換成二進制碼,而把文件以文本方式寫入磁碟時,也要把二進制碼轉換成ASCII碼,因此文本文件的讀寫要花費較多的轉換時間。對二進制文件的讀寫不存在這種轉換。
8) 標准輸入文件(鍵盤),標准輸出文件(顯示器),標准出錯輸出(出錯信息)是由系統打開的,可直接使用。

Ⅶ C語言 fprintf和fscanf 怎麼用

fprintf和fscanf都是對文件進行操作的函數。下面通過具體的實例來說明其用法:


函數名:fscanf

功 能:從一個流中執行格式化輸入

用 法:intfscanf(FILE*stream,char*format[,argument...]);


程序例:

#include<stdlib.h>
#include<stdio.h>

intmain(void)
{
inti;

printf("Inputaninteger:");

/*readanintegerfromthe
standardinputstream*/
if(fscanf(stdin,"%d",&i))
printf("Theintegerreadwas:%i ",i);
else
{
fprintf(stderr,". ");
exit(1);
}
return0;
}

函數名:fprintf

功能:傳送格式化輸出到一個流中

用法:intfprintf(FILE*stream,char*format[,argument,...]);


程序例:

#include<stdio.h>
intmain(void)
{
FILE*in,*out;

if((in=fopen("\AUTOEXEC.BAT","rt"))==NULL)
{
fprintf(stderr,"Cannotopeninputfile. ");
return1;
}

if((out=fopen("\AUTOEXEC.BAK","wt"))==NULL)
{
fprintf(stderr,"Cannotopenoutputfile. ");
return1;
}

while(!feof(in))
fputc(fgetc(in),out);

fclose(in);
fclose(out);
return0;
}

Ⅷ C語言中fscanf()的用法

首先,你要確認你的這個文件名是正確的,這個文件名沒有隱藏的後綴名,其次,你這個文件放的位置要正確,要放在你的工程的路徑下,如果你不知道要將這個文件放在哪裡,請把你的代碼中fp = fopen("121.text", "r")的"121.text"這個改成絕對路徑 :比如說:"F:\CWorkspace\hello\121.text",這個路徑要看你具體存放在哪裡了
另外,你的程序有些問題,我給你改好了,如果你的文件沒問題的話用這個就可以運行了
#include<stdio.h>
int main()
{
struct student
{
char num[10];
char name[10];
float score[3];
float avg;
} t[100];
FILE *fp;
int i, n = 2;
/***************************************************************************/
if ((fp = fopen("121.text", "r")) == NULL)
{
printf("沒有此文件\n");
perror("fopen");
exit(0);
}
for (i = 0; i < n; i++)
fscanf(fp, "%s%s%f%f%f%f", t[i].num, t[i].name, &t[i].score[0], &t[i].score[1],
&t[i].score[2], &t[i].avg);
fclose(fp);
/*****************************************************************************/
for (i = 0; i < n; i++)
printf("%s\t%s\t%-5.2f\t%-5.2f\t%-5.2f\t%-5.2f\t\n", t[i].num,
t[i].name, t[i].score[0], t[i].score[1], t[i].score[2],
t[i].avg);
return 0;
}

Ⅸ C語言關於fscanf函數

fprintf(fp,"%s,%c,%d,%f",str,a,
c,
b);
這個輸出格式表明
你的文件1.txt
里的數據
是用
逗號

隔。
if((fp
=
fopen("1.txt","r"))==NULL)
你要打開

這個

逗號為
分隔符
的文件。
fscanf(fp,"%s,%c,%d,%f",
str,
&a,
&c,
&b);
漏寫
str,
給你補上,但
這仍不能解決
%s,
的逗號分隔問題。
必須
用下面格式讀取逗號分隔的數據:
fscanf(fp,"%[^,],%c,%d,%f",
str,
&a,
&c,
&b);
======================================
假如文件里的數據

空白
分隔,不用
逗號,日子就好過得多:
fprintf(fp,"%s
%c
%d
%f",str,a,
c,
b);
fscanf(fp,"%s
%c
%d
%f",
str,
&a,
&c,
&b);

Ⅹ c語言中關於fscanf用法

先用追加方式打開文件,然後列印28整型數到文件,當然文件內容是abc28嘍。然後掃描出的字元串就是abc28