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