C語(yǔ)言可以使用fopen()函數(shù)讀取txt文本里。
專注于為中小企業(yè)提供成都做網(wǎng)站、成都網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)愛(ài)輝免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了1000多家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
示例:
#include stdio.h
FILE *stream, *stream2;
void main( void )
{
int numclosed;
/* Open for read (will fail if file "data" does not exist) */
if( (stream? = fopen( "data", "r" )) == NULL )
printf( "The file 'data' was not opened\n" );
else
printf( "The file 'data' was opened\n" );
/* Open for write */
if( (stream2 = fopen( "data2", "w+" )) == NULL )
printf( "The file 'data2' was not opened\n" );
else
printf( "The file 'data2' was opened\n" );
/* Close stream */
if(fclose( stream2 ))
printf( "The file 'data2' was not closed\n" );
/* All other files are closed: */
numclosed = _fcloseall( );
printf( "Number of files closed by _fcloseall: %u\n", numclosed );
}
擴(kuò)展資料
使用fgetc函數(shù)
#include stdio.h
#include stdlib.h
void main( void )
{
FILE *stream;
char buffer[81];
int? i, ch;
/* Open file to read line from: */
if( (stream = fopen( "fgetc.c", "r" )) == NULL )
exit( 0 );
/* Read in first 80 characters and place them in "buffer": */
ch = fgetc( stream );
for( i=0; (i 80 ) ( feof( stream ) == 0 ); i++ )
{
buffer[i] = (char)ch;
ch = fgetc( stream );
}
/* Add null to end string */
buffer[i] = '\0';
printf( "%s\n", buffer );
fclose( stream );
}
寫幾段代碼就是了
char s[100];
FILE *fp;
fp=fopen("d:\\1.txt","r");//打開(kāi)文件,注意是兩個(gè)\\
gets(s,50,fp);從文件中讀取49個(gè)字符到s中
C語(yǔ)言,打開(kāi)文件一個(gè)TXT文件,需要使用fopen()函數(shù)。
它的函數(shù)原型位FILE
*
fopen(const
char
*
path,const
char
*
mode);
如果文件順利打開(kāi)后,返回指向該流的文件指針就會(huì)。如果文件打開(kāi)失敗則返回NULL,并把錯(cuò)誤代碼存在errno中。
一般而言,打開(kāi)文件后會(huì)做一些文件讀取或?qū)懭氲膭?dòng)作,若打開(kāi)文件失敗,接下來(lái)的讀寫動(dòng)作也無(wú)法順利進(jìn)行,所以一般在fopen()后作錯(cuò)誤判斷及處理。
參數(shù)path字符串包含欲打開(kāi)的文件路徑及文件名,參數(shù)mode字符串則代表著流形態(tài)。
mode有下列幾種形態(tài)字符串:
r
以只讀方式打開(kāi)文件,該文件必須存在。
r+
以可讀寫方式打開(kāi)文件,該文件必須存在。
rb+
讀寫打開(kāi)一個(gè)二進(jìn)制文件,允許讀寫數(shù)據(jù),文件必須存在。
w
打開(kāi)只寫文件,若文件存在則文件長(zhǎng)度清為0,即該文件內(nèi)容會(huì)消失。若文件不存在則建立該文件。
w+
打開(kāi)可讀寫文件,若文件存在則文件長(zhǎng)度清為零,即該文件內(nèi)容會(huì)消失。若文件不存在則建立該文件。
a
以附加的方式打開(kāi)只寫文件。若文件不存在,則會(huì)建立該文件,如果文件存在,寫入的數(shù)據(jù)會(huì)被加到文件尾,即文件原先的內(nèi)容會(huì)被保留。(EOF符保留)
a+
以附加方式打開(kāi)可讀寫的文件。若文件不存在,則會(huì)建立該文件,如果文件存在,寫入的數(shù)據(jù)會(huì)被加到文件尾后,即文件原先的內(nèi)容會(huì)被保留。
(原來(lái)的EOF符不保留)
wb
只寫打開(kāi)或新建一個(gè)二進(jìn)制文件;只允許寫數(shù)據(jù)。
wb+
讀寫打開(kāi)或建立一個(gè)二進(jìn)制文件,允許讀和寫。
ab+
讀寫打開(kāi)一個(gè)二進(jìn)制文件,允許讀或在文件末追加數(shù)據(jù)。
wx
創(chuàng)建文本文件,只允許寫入數(shù)據(jù).[C11]
wbx
創(chuàng)建一個(gè)二進(jìn)制文件,只允許寫入數(shù)據(jù).[C11]
w+x
創(chuàng)建一個(gè)文本文件,允許讀寫.[C11]
wb+x
創(chuàng)建一個(gè)二進(jìn)制文件,允許讀寫.[C11]
w+bx
和"wb+x"相同[C11]
以x結(jié)尾的模式為獨(dú)占模式,文件已存在或者無(wú)法創(chuàng)建(一般是路徑不正確)都會(huì)導(dǎo)致fopen失敗.文件以操作系統(tǒng)支持的獨(dú)占模式打開(kāi)
下面讀取TXT文件的行數(shù)并把把TXT文件的內(nèi)容存到數(shù)組中。
這里假設(shè)每行是一個(gè)字符串,每行不超過(guò)127個(gè)字符(用數(shù)組存字符串,最后一位存'\0'),選取fgets進(jìn)行讀取。
示例代碼如下:
#include
#include
int main(int argc, char* argv) {
FILE* rf = fopen("input.txt","r");
char a[1024][128];
int i=0;
while(fgets(a[i],128,rf))i++;
int n=i;
printf("行數(shù):%d\n",n);
fclose(rf);
i=0;
while(i
1、使用VS新建空工程,直接點(diǎn)擊確定,如下所示。
2、新建c文件,用于C語(yǔ)言編譯器,輸入main.c文件,如下所示。
3、參考代碼:
#include stdio.h
int main()
{
//下面是寫數(shù)據(jù),將數(shù)字0~9寫入到data.txt文件中
FILE *fpWrite=fopen("data.txt","w");
if(fpWrite==NULL)
{
? return 0;
}
for(int i=0;i10;i++)
? fprintf(fpWrite,"%d ",i);
fclose(fpWrite);
//下面是讀數(shù)據(jù),將讀到的數(shù)據(jù)存到數(shù)組a[10]中,并且打印到控制臺(tái)上
int a[10]={0};
FILE *fpRead=fopen("data.txt","r");
if(fpRead==NULL)
{
? return 0;
}
for(int i=0;i10;i++)
{
? fscanf(fpRead,"%d ",a[i]);
? printf("%d ",a[i]);
}
getchar();//等待
return 1;
}
4、編譯完成后,運(yùn)行exe程序,執(zhí)行后顯示console程序。
名稱欄目:c語(yǔ)言函數(shù)txt的簡(jiǎn)單介紹
鏈接分享:http://jinyejixie.com/article6/dssseig.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、微信小程序、全網(wǎng)營(yíng)銷推廣、網(wǎng)站導(dǎo)航、網(wǎng)站改版、品牌網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)