ホームページ  >  記事  >  ソフトウェアチュートリアル  >  C言語でTXTドキュメントの開始と終了の間の2行の文字データを読み取る方法

C言語でTXTドキュメントの開始と終了の間の2行の文字データを読み取る方法

WBOY
WBOY転載
2024-01-09 08:34:13745ブラウズ

C 言語の TXT ドキュメントの 2 行の文字の間 (開始と終了の間など) のデータを読み取る方法

ファイル構造が 1E1F 0309 luan7 8 zao

であると仮定します。

2E2F 1518

###始める###

12 39692

12 39712

9 39724

###終わり### ###始める###

14 39692

8 39724

###終わり###

ルアン7 8ザオ

チーチーグアイグアイ

###始める###

312 39692

142 39712

95 39724

###終わり###

開始データと終了データの複数のセグメントが含まれています

#含める #含める

###主要( ) {###

ファイル*fin;

int a[1000],b[1000],n=0,i;

文字 1 行[80];

fin=fopen("abc.txt","r");

if (fin==NULL){printf("ファイルオープンエラー\n");return 0;}

Lab1:while(1){

if ( fgets(one_line,80,fin)==NULL){

printf("資金をこれ以上開始できません\n");ラボ 2 に進みます;}

if (strncmp(one_line,"begin",5)==0)break;

}

for (i=0;i

if (strncmp(one_line,"end",3)==0)break;

sscanf(one_line,"%d %d",&a[n],&b[n]);

n ;

}

ラボ 1 に移動;

ラボ 2: fclose(fin);

printf("読んだ:\n");for (i=0;ireturn 0;

}

C言語のtxtからデータが抽出されセミコロンで区切られている場合の対処方法

fgets はデータの各行を読み取り、strchr を使用してセミコロン; が出現する位置を見つけ、対応する変換を実行します。

これは指定した文字列を読み込むために書いた例ですので、これを参考に改変してください 文字列を浮動小数点数に変換する関数 atof

####含む ###### ####含む ######

#N 10

を定義

int readstr(const char* str,char p[][128],int plen,int savepos);

int main()

{

char str[]="2012/10/12;123456.0;456123.0";

文字日付[N][128]={0};

int len=readstr(str,date,N,0);

for (int i=0;i

{

printf("%s\n",date[i]);

}

0を返す;

}

int readstr(const char* str,char p[][128],int plen,int savepos)

{

if(plen

{

printf ("配列が小さすぎるため、保存場所を変更してください!");

0を返す;

}

静的 int len=0;

char *find=strchr(str,';');

if(find==NULL)

{

strcpy(p[savepos],str);

レン ;

戻り長さ;

}

###それ以外###

{

strncpy(p[savepos],str,find-str);

レン ;

readstr(find 1,p,N,len);

}

戻り長さ;

}

C言語で指定した文字列の次の行のデータをtxtから読み取る方法

fgets を使用して行を読み取り、sscanf を使用してデータの最初の列を読み取ります

以下では、データの最初の列が文字列として使用され、sscanf(buf,"%s",... format.

を使用して読み取られることを前提としています。

同様に、整数には %d を使用し、浮動小数点には %f を使用します。....

####含む ###### ####含む ###### ###主要(){###

char buf[100];

文字列[100][30];

int n=0;

FILE *fp = fopen("a.txt", "r");

while ( fgets(buf, 100, fp) != NULL) {

if (sscanf(buf,"%s",col[n]) == 1){printf("%s\n",col[n]); n ; };

}

0を返す;

}

各行の最初の数字を読み取りたい場合は、(フォーマットを使用して 1 桁だけを読み取ります):

int x[100];

...

while ( fgets(buf, 100, fp) != NULL) {

if (sscanf(buf," ",&x[n]) == 1){ printf("%d\n",x[n]);n ;};

以上がC言語でTXTドキュメントの開始と終了の間の2行の文字データを読み取る方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はdocexcel.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。