A. 關於c語言中文本文件的逐行讀取的實現
#include
<stdio.h>
int
ReadData(void)
{
unsigned
int
rc,
i,
get;
/*get為讀取一個位元組*/
FILE
*fp;
fp
=
fopen("helloworld.txt",
"r+");
if
(fp
==
NULL)
{
return
-1;
/*打開文件失敗返回-1*/
}
rc=0;
i=0;
while
((get
=
fgetc(fp))
!=
EOF)
{
if((char)get
==
'\n')
/*記錄換行符*/
{
rc
=
ftell(fp);
i++;
}
rc++;
}
return
i;
}
int
main()
{
int
row;
row
=
ReadData();
printf("Row
=
%d\n",
row);
/*列印文件行數*/
return
0;
}
B. 從文本文件里讀取數字,c語言如何實現
voidmain()
{
FILE*fin;
inta,b,c,d;
chars[20];
floatf1,f2,f3,f4;
fin=fopen("abc.txt","r");//打開
fscanf(fin,"%1d%1d%1d%1d",&a,&b,&c,&d);//按1位整型讀前4個數
printf("a=%db=%dc=%dd=%d ",a,b,c,d);
rewind(fin);//文件回繞到開始處
fscanf(fin,"%s",s);//按字元串讀一串
printf("s=%s ",s);
rewind(fin);//文件回繞到開始處
fscanf(fin,"%1f%1f%1f%1f",&f1,&f2,&f3,&f4);//按1位float型讀前4個數
printf("%f%f%f%f ",f1,f2,f3,f4);
flcose(fin);
}
abc.txt內容:
123456789
讀到數組:
inty[20];
inti;
fin=fopen("abc.txt","r");
for(i=0;i<9;i++)fscanf(fin,"%1d",&y[i]);
(2)c語言文本文件的讀取擴展閱讀
C語言中文件的讀取
fopen(打開文件)
相關函數open,fclose
表頭文件#include<stdio.h>
定義函數FILE*fopen(constchar*path,constchar*mode);
函數說明參數路徑包含包含打開的文件路徑和文件名,參數模式字元串則代表著流形態。
模式有以下幾種形態類別:
r:預期文件,該文件必須存在。
r+:可讀寫的文件,該文件必須存在。
w:只寫文件,若文件存在則文件長度清為0,即該文件內容會消失。若文件不存在則建立該文件。
w+:可讀寫文件,若文件存在則文件長度清為零,即該文件內容會消失。若文件不存在則建立該文件。
a以附加的方式打開只寫文件。若文件不存在,則建立該文件,如果文件存在,寫入的數據會被加到文件尾,即文件原先的內容會被保留。
C. 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 );
}
(3)c語言文本文件的讀取擴展閱讀
使用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] = '