當前位置:首頁 » 辦公資訊 » 怎樣用c讀取txt文件

怎樣用c讀取txt文件

發布時間: 2023-05-16 14:32:12

㈠ C語言怎麼打開TXT文件

C語言,打侍燃開文件一個TXT文件,需要使用fopen()函數。

它的函數原型位FILE * fopen(const char * path,const char * mode);

如果文件順利打開後,返回指向該流的文件指針就會。如果文件打開失敗則返回NULL,並把錯褲鎮誤代碼存在errno中。

一般而言,打開文件後會做一些文件讀取或寫入的動作,若打開文件失敗,接下來的讀寫動作也無法順利進行,所以一般在fopen()後作錯誤判斷及處理。

參數path字元串包含欲打開的文件路徑及文件名,參數mode字元串則代表著流形態。

mode有下列幾種形態字元串:

r 以只讀方式打開文件,該文件必須存在。

r+ 以可讀寫方式打開文件,該文件必須存在。

rb+ 讀寫打開一個二進制文件,允許讀寫數據,文件必須存在。

w 打開只寫文件,若文件存在則文件長度清為0,即該文件內容會消失。若文件不存在則建立該文件。

w+ 打開可讀寫文件,若文件存在則文件長度清為零,即該文件內容會消失。若文件不存在則建立該文件。

a 以附加的方式打開只寫文件。若文件不存在,則會建立該文件,如果文件存在,寫入的數據會被加到文件尾,即文件原先的內容會被保留。(EOF符保留)

a+ 以附加方式打開可讀寫的文件。若文件不存在,則會建立該文件,如果文件存在,寫入的數據會被加到文件尾後,即文件原先的內容會被保留。 (原來的EOF符不保留)

wb 只寫打開或新建一個二進制文件;只允許寫數據。

wb+ 讀寫打開或建立一個二進制文件,允許讀和寫。

ab+ 讀寫打開一個二進制文件,允許讀或在文件末追加數據。

wx 創建文本文件,只允許寫入數據.[C11]

wbx 創建一個二進制文件,只允許寫入數據.[C11]

w+x 創建一個文本文件,允許讀寫.[C11]

wb+x 創建一個二進制文件,允許讀寫.[C11]

w+bx 和"wb+x"相同[C11]

以x結尾的模式為獨占模式,文件已存在或者無法創建(一般是路徑不正確)都會導致fopen失敗.文件以操作系統支持的獨占模式打開

下面讀取TXT文件的行數並把把TXT文件的內容存到數組中。

這里假設每行是一個字元串,每行不超過127個字元(用數組存字元串,最後一位存''),選取fgets進行讀胡談粗取。

示例代碼如下:

#include<stdio.h>
#include<stdlib.h>
intmain(intargc,char*argv){
FILE*rf=fopen("input.txt","r");
chara[1024][128];
inti=0;
while(fgets(a[i],128,rf))i++;
intn=i;
printf("行數:%d ",n);
fclose(rf);
i=0;
while(i<n)printf("%s",a[i++]);
system("pause");
return0;
}

㈡ C語言如何讀取txt文本裡面的內容

C語言可以使用fopen()函數讀取txt文本里。

示例:

#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 " );

else

printf( "The file 'data' was opened " );

/* Open for write */

if( (stream2 = fopen( "data2", "w+" )) == NULL )

printf( "The file 'data2' was not opened " );

else

printf( "The file 'data2' was opened " );

/* Close stream */

if(fclose( stream2 ))

printf( "The file 'data2' was not closed " );

/* All other files are closed: */

numclosed = _fcloseall( );

printf( "Number of files closed by _fcloseall: %u ", numclosed );

}

(2)怎樣用c讀取txt文件擴展閱讀

使用fgetc函數

#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] = '';

printf( "%s ", buffer );

fclose( stream );

}

㈢ C語言如何實現對txt文件的讀取和寫入

使用fopen的r方式可以實現讀取,用w+方式可以實現寫入。
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<stdio.h>
#define F_PATH "d:\\myfile\\file.dat"
char c;
int main(){
FILE*fp=NULL;//需要注意
fp=fopen(F_PATH,"w"); //創建文件
if(NULL==fp) return -1;//要返回錯誤代碼
while(scanf("%c",&c)!=EOF) fprintf(fp,"%c",c); //從控制台中讀入並在文本輸出
fclose(fp);
fp=NULL;//需要指向空,否則會指向原打開文件地址
return 0;
}

㈣ C語言文件操作,要讀取一個txt文件內容,應該怎麼做

//data.txt文件內容如下x0dx0ax0dx0a1個豬x0dx0a2個豬x0dx0a3個豬x0dx0a4個豬x0dx0a5個豬x0dx0a6個豬x0dx0a7個豬x0dx0a8個豬x0dx0ax0dx0a//運行結果一x0dx0athe 8 line :8 個 豬x0dx0ax0dx0aPress any key to continue x0dx0a//運行結果二x0dx0aout of range!x0dx0aPress any key to continue x0dx0ax0dx0a//代碼如下x0dx0a#include x0dx0a#include x0dx0a#include x0dx0amain(void)x0dx0a{x0dx0aint lid,cnt=0,flag=0;;x0dx0achar buf[100]="\0";x0dx0aFILE *fp;x0dx0ax0dx0asrand((unsigned)time(NULL));x0dx0afp=fopen("data.txt","r");x0dx0alid= rand()%10+1;x0dx0awhile (fgets(buf,99,fp)!=NULL)x0dx0a{x0dx0aif(cnt==lid)x0dx0a{x0dx0aprintf("the %d line :%s\n",lid+1,buf);x0dx0aflag=1;x0dx0abreak;x0dx0a}x0dx0acnt++;x0dx0a}x0dx0aif (flag==0)x0dx0a{x0dx0aprintf("out of range!\n");x0dx0a}x0dx0a}

㈤ 如何用c語言從txt文件中讀取數據

用C語言從txt文件中讀取數據,可以使用C標准庫文件自帶的文件介面函數進行操作。
一、打開文件:
FILE
*fopen(const
char
*filename,
const
char
*mode);
因為txt文件為文本文件,
所以打開時選擇的mode應為"r"或者"rt"。
二、讀取文件:
讀取文件應根據文件內容的格式,以及程序要求,選擇讀取文件的函數。可以使用一種,也可以幾種混用。
常用的文件讀取函數如下:
1、fgetc,
從文件中讀取一個位元組並返回。
適用於逐個位元組讀取。
2、
fgets,
從文件中讀取一行。適用於整行讀取。
3、fscanf,
格式化讀取文件,
在已經清楚文件存儲格式下,可以直接用fscanf把文件數據讀取到對應類型的變數中。
4、fread,
整塊讀取文件,
對於txt文件比較少用。
三、關閉文件:
讀取結束後,應調用fclose函數關閉文件。

㈥ 用c語言讀取一個txt文件

如果預知前面的是英文後面的是中文,即可分開:

#include<stdio.h>

#define N 100

void main() { FILE *fp; char s[256],y[N][20],h[N][20]; int i,n;

if ( fp=fopen("c:\data\text.txt","r") ) {

n=0;

while ( !feof(fp) ) {

fgets(s,256,fp); sscanf("%s%s",y[n],h[n]); n++; if ( n>=N ) break;

}

fclose(fp);

printf("英文: "); for ( i=0;i<n;i++ ) printf("%s ",y[i]); printf(" ");

printf("中文: "); for ( i=0;i<n;i++ ) printf("%s ",h[i]); printf("睜森 ");

} else printf("無法打開文件讀取。 ");

}

如果中英文順序不一定,且不會有中英文混合單詞:

#include<stdio.h>

#include<string.h>

#define N 100

void main() { FILE *fp; char s[256],y[N][20],h[N][20]; int i,n;

if ( fp=fopen("c:\data\text.txt","r") ) {

n=0;

while ( !feof(fp) ) {

fgets(s,256,fp); sscanf("%s%s",y[n],h[n]);

if ( y[n][0]<0 ) { strcpy(s,y[n]);strcpy(y[n],h[n]);strcpy(h[n],s); } //漢字字元ASCII碼小於0

n++; if ( n>=N ) break;

}

fclose(fp);

printf("英沒脊文: "); for ( i=0;i<n;i++ ) printf("%s ",y[i]); printf(" ");

printf("中文: "); for ( i=0;i<n;i++ ) printf("%s ",h[i]); printf("悉察畝 ");

} else printf("無法打開文件讀取。 ");

}

㈦ c 如何讀文件

在C語言開發中,想要讀入一個文件。C語言可以使用FILE文件操作進行高和肢讀取。下面小白就來簡單說說C語言如何讀取一個txt文件。

C語言讀取步驟一:首先需要以寫入的方式打開一個空白的texr.txt文件。FILE*fpWrite=fopen("text.txt";"w");

C語言讀取步驟二:打開以後,繼續進行循環寫入0到9的操作。代碼。

C語言讀取棚早步驟三:完成文件寫入操作後,一定戚世要記得對打開文件進行關閉操作。

C語言讀取步驟四:接下來對文件中寫入數據的讀取。首先需要創建一個用於保存讀取數據的數組。

C語言讀取步驟五:創建好數組以後,以讀取的方式對text.txt文件進行打開操作。

C語言讀取步驟六:最後,將讀取到的數據循環保存的創建好的數組中,並且將其顯示到控制台中。

㈧ C語言中讀取txt文件內容

樓主朋友,你的程序中的問題出在分配空間不足上。比如當你想讓a[j]指向某段內存時,用的是
a[j]=(char *)malloc(sizeof(char)); 而到了後面你是要在這段內存中存入一個字元串的,所以就發生了越界。下面是我根據你的代碼片段寫的凱爛一個測試程序,經過修改應該沒問題了。
#include <stdio.h>
#include <stdlib.h>
int main (void)
{
char path[]="12345.txt";
FILE *create;
if((create=fopen(path,"r"))!=NULL)
{
int j; char **a;
a=(char **)malloc(100*sizeof(char*)); //此處如果只申請一個char *大小的空間時,
//你以後的a[j]往哪裡放?此處的腔慧100是假設你的文件中有100行信息。如果超過100還得多分配
for (j=0;;j++)
{
a[j]=(char *)malloc(10000*sizeof(char)); /盯圓漏/此處只申請一個字元的空間,後面讀取
//長度為10000的字元串就沒地方存放了
fgets(a[j],10000,create);
printf("%s",a[j]); //測試讀取是否成功,將文件中信息顯示到屏幕上
if(feof(create)!=0)
{
for(;j=0;j--)
free(a[j]);
break;
}
}
free(a);
}
else
printf("Fail to open the file.\n");
fclose(create);
printf("\n");
}

㈨ 怎麼用c語言實現讀取一個.txt文件里的數據並要按行讀出來

/*假設你的數據裂沖好文件是d:\ttt.txtx0dx0a 用循環把數字讀肆鉛到數組a裡面順便顯示判知出來 */x0dx0a#include x0dx0aint main()x0dx0a{x0dx0adouble a[100];x0dx0aint i=0;x0dx0aFILE* fp;x0dx0aif((fp=fopen("d:\\ttt.txt","r"))==0)x0dx0a{x0dx0aprintf("無文件!!\n");x0dx0areturn -1;x0dx0a}x0dx0awhile(!feof(fp))x0dx0a{x0dx0afscanf(fp,"%lf",&a[i]);x0dx0aprintf("%lf\n",a[i]);x0dx0ai++;x0dx0a}x0dx0afclose(fp);x0dx0areturn 0;x0dx0a}

㈩ 請問如何用c語言從txt文件中讀取數據

//其中的in.txt就是你要讀取數據的文件,當然岩枝飢把它和程序放在同一目錄
-------------------------------------

#include <stdio.h>
int main()
{
int data;
FILE *fp=fopen("in.txt"搭差,"r");
if(!fp)
{
printf("can't open file\n");
return -1;
}
while(!feof(fp))
{
fscanf(fp,"%d",&data);
printf("%4d",data);
}
printf("\n"粗返);
fclose(fp);
return 0;
}

熱點內容
馬路上汽車的噪音在多少分貝 發布:2023-08-31 22:08:23 瀏覽:1881
應孕棒多少錢一盒 發布:2023-08-31 22:08:21 瀏覽:1353
標准養老金一年能領多少錢 發布:2023-08-31 22:05:05 瀏覽:1640
湖北通城接網線多少錢一個月 發布:2023-08-31 21:59:51 瀏覽:1720
開隨車吊車多少錢一個月 發布:2023-08-31 21:55:06 瀏覽:1482
京東付尾款怎麼知道前多少名 發布:2023-08-31 21:52:58 瀏覽:1805
在學校租鋪面一個月要多少錢 發布:2023-08-31 21:52:09 瀏覽:1943
2寸有多少厘米 發布:2023-08-31 21:50:34 瀏覽:1587
知道電壓如何算一小時多少電 發布:2023-08-31 21:46:20 瀏覽:1567
金手鐲54號圈周長是多少厘米 發布:2023-08-31 21:44:28 瀏覽:1742