#includestdio.h
承德縣ssl適用于網站、小程序/APP、API接口等需要進行數據傳輸應用場景,ssl證書未來市場廣闊!成為創新互聯的ssl證書銷售渠道,可以享受市場價格4-6折優惠!如果有意向歡迎電話聯系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!
#includestdlib.h
int main()
{
FILE *fp,*ok;
char str1[80],str2[80];
if((fp=fopen("d:\\file.txt","r+"))==NULL)//打開d盤下名為file的文本文件;
{
puts("file文件打開失敗!");
exit(0);
}
else
puts("file文件打開成功");
if((ok=fopen("d:\\file1.txt","r"))==NULL)//打開d盤下名為file1的文本文件;
{
puts("file1文件打開失敗!");
exit(0);
}
else
puts("file1文件打開成功");
/*__________________*/
scanf("%[^!]",str1);//輸入一串字符,以!為結束標志;
fprintf(fp,"%s",str1);//將字符串str1寫入指針fp所指向的文件;
fscanf(ok,"%s",str2);//讀取指針ok指向的文件,將內容以字符串的形式存儲在數組str2中 ;
puts(str2);
/*__________________*/
fclose(fp);//關閉文件;
fclose(ok);
return 0;
}
一般來說在C語言中讀取txt文件的信息有兩種方法,一種是使用C語言標準文件I/O中的fopen()、fread()等等函數,一種是調用操作系統中的API函數,比如Windows上的ReadFile()、OpenFile()等等,現在操作系統一般都具備內存文件映射功能,對于大的txt文件,一般都使用這種方式操作。下面是一個使用C語言標準文件I/O操作文件的例子。
#includestdio.h
FILE*stream;
void?main(void)
{
long?l;
float?fp;
char?s[81];
char?c;
stream=fopen("fscanf.out","w+");
if(stream==NULL)
printf("Thefilefscanf.outwasnotopened\n");
else
{
fprintf(stream,"%s%ld%f%c","hello?world",??
65000,3.14159,'x');
/*Setpointertobeginningoffile:*/
fseek(stream,0L,SEEK_SET);
/*Readdatabackfromfile:*/
fscanf(stream,"%s",s);
fscanf(stream,"%ld",l);
fscanf(stream,"%f",fp);
fscanf(stream,"%c",c);
/*Outputdataread:*/
printf("%s\n",s);
printf("%ld\n",l);
printf("%f\n",fp);
printf("%c\n",c);
fclose(stream);
}
}
C語言對文件進行讀取之前需要先打開文件,然后再進行讀寫,讀寫完之后關閉文件。
可以使用兩組函數實現:
一、C語言庫函數
打開文件:fopen
讀寫(一般對應成對使用):
fgetc---fputc fgets---fputs fread---fwrite
關閉文件:fclose
二、Linux系統函數
打開文件:open
讀寫(一般對應成對使用):read---write
關閉文件:close
使用fopen,fscanf函數即可讀取文件數據。
1、fopen的函數原型:FILE
*
fopen(const
char
*
path,const
char
*
mode);
fopen函數的第一個參數是文件路徑,第二個參數是打開方式,有以下幾種方式:
r
以只讀方式打開文件,該文件必須存在。
r+
以可讀寫方式打開文件,該文件必須存在。
rb+
讀寫打開一個二進制文件,允許讀數據。
rw+
讀寫打開一個文本文件,允許讀和寫。
w
打開只寫文件,若文件存在則文件長度清為0,即該文件內容會消失。若文件不存在則建立該文件。
w+
打開可讀寫文件,若文件存在則文件長度清為零,即該文件內容會消失。若文件不存在則建立該文件。
a
以附加的方式打開只寫文件。若文件不存在,則會建立該文件,如果文件存在,寫入的數據會被加到文件尾,即文件原先的內容會被保留。(EOF符保留)
a+
以附加方式打開可讀寫的文件。若文件不存在,則會建立該文件,如果文件存在,寫入的數據會被加到文件尾后,即文件原先的內容會被保留。
(原來的EOF符不保留)
wb
只寫打開或新建一個二進制文件;只允許寫數據。
wb+
讀寫打開或建立一個二進制文件,允許讀和寫。
wt+
讀寫打開或著建立一個文本文件;允許讀寫。
at+
讀寫打開一個文本文件,允許讀或在文本末追加數據。
ab+
讀寫打開一個二進制文件,允許讀或在文件末追加數據。
上述的形態字符串都可以再加一個b字符,如rb、w+b或ab+等組合,加入b
字符用來告訴函數庫打開的文件為二進制文件,而非純文字文件。
返回值:文件順利打開后,指向該流的文件指針就會被返回。如果文件打開失敗則返回NULL,并把錯誤代碼存在errno中。
2、例程:
#include
#define F_PATH "d:\\myfile\\file.dat"
char c;
int main(){
FILE*fp=NULL;//需要注意
fp=fopen(F_PATH,"r");
if(NULL==fp) return -1;//要返回錯誤代碼
while(fscanf(fp,"%c",c)!=EOF) printf("%c",c); //從文本中讀入并在控制臺打印出來
fclose(fp);
fp=NULL;//需要指向空,否則會指向原打開文件地址
return 0;
}
if(fscanf(fp1,"%s : %s equal: %lf",person[index].num,person[index].first, person[index].equal)==EOF)
{
printf("END FILE.");
exit(0);
}
}
for(i=0;i1;i++)
{
//person[i].first[0]=toupper(person[i].first[0]);
//person[i].last[0]=toupper(person[i].last[0]);
printf("The num and name:\n%s:%s equal:%lf.\n",person[i].num,person[i].first, person[i].equal);
data.txt里的數據我是這樣的。
414314 : FanXiang equal:2.0
問你個問題"data.txt" 這個文件的路徑是在哪?
C語言函數返回類型的默認定義類型是void。( 錯 )for語句作為循環控制語句時,其括號內各個表達式及其后的分號都可缺省。(對 )在 if語句中,不可以沒有 else 子句。 ( 錯 )程序是按書寫的順序執行的。( 錯)文件的讀函數是從輸入文件中讀取信息,并存放在內存中。( 對 )在 C 語言中,只有在兩個字符串所包含的字符個數相同時,才能比較大小。如字符串“That”與“The”就不能進行大小比較。( 錯 )在 C 語言程序中,happy是正確的標識符。( 對)在 C 程序中一行內可以寫幾個語句,一個語句可以分寫在多行上。因此,并不是每一條 C 語句都必須有一個分號的。( 錯 )C 語言中 , 字符串常量存放在字符數組中要有一個結束符 , 該結束符是0 。( 對 )C提供的預處理功能主要有宏定義、文件包含和條件編譯三種。( 對 )數組在定義時沒有必要指定數組的長度,其長度可以在程序中根據元素個數再決定。( 對 )字符串是C 語言中一種基本數據類型,字符串總是以‘\n’作為結束標志。( 錯 )C 語言規定: 在一個源程序中, main函數的位置必須在最開始。( 錯 )標準格式輸入函數scanf()可以從鍵盤上接收不同數據類型的數據項。( 對 )continue 只能用于循環體中。( 錯 )C 語言程序實現與其他高級語言一樣也要經過編輯、編譯連接和運行這樣的三步曲。( 對 )預處理命令的前面必須加一個“#”號。(對 ) C程序的注釋部分可以出現在程序的任何位置,它對程序的編譯和運行不起任何作用。但是可以增加程序的可讀性。(對 )在多層循環中, 一個break語句只向外跳一層。( 對 )在對數組全部元素賦初值時,不可以省略行數,但能省略列數。( 錯 )
當前標題:c語言編寫讀取信息函數 c語言讀取字符串的函數
網站URL:http://www.yijiale78.com/article40/hpdceo.html
成都網站建設公司_創新互聯,為您提供手機網站建設、網站策劃、ChatGPT、App設計、定制網站、小程序開發
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯