C言語でファイルデータを構造体変数に代入する方法
C言語でファイルデータを構造体変数に代入する方法
/*指定された性別[2]は 4 文字に収まらないようです。 。 。 。 。 。でも質問の意味は分かりました。
**プログラミングを簡略化するために、構造体のすべてのデータを文字配列に変更しました。数値が必要な場合は、別の変換ステップを追加するだけです**。比較的単純なので書きません。さらに、プログラムで使用される構造体配列 ファイルに何行あるかわからない場合は、メモリを節約するために動的割り当てを使用できます。急いで書いたので、カプセル化された関数はありませんが、確かに使えるので、これで間に合わせてください~~~
*/
####含む ######構造体採用<...>
{文字ID[10];
文字名[10];
文字性別[5];
文字年齢[5];
文字教育[10];
文字賃金[5];
文字アドレス[20];
文字番号[20];
};
int _tmain(int argc, _TCHAR* argv[])
{
char buf[100];
ファイル* pf=NULL;
構造体は Ep[10]={};
を採用
int フラグ=0;pf=fopen("employ.dat","r");
if(!pf)
{
printf("ファイルを開けませんでした!\n");
system("一時停止");
-1 を返す;
}
while(fgets(buf,99,pf))
{
char* pchar=buf;
for(int i=0;i {
Ep[フラグ].id[i]=*pchar;
if(*pchar ==',')
###壊す;###
}for(int i=0;i {
Ep[フラグ].name[i]=*pchar;
if(*pchar ==',')
###壊す;###
}for(int i=0;i {
Ep[フラグ].sex[i]=*pchar;
if(*pchar ==',')
###壊す;### }
for(int i=0;i {
Ep[フラグ].age[i]=*pchar;
if(*pchar ==',')
###壊す;###
}for(int i=0;i
{Ep[フラグ].edu[i]=*pchar;
if(*pchar ==',')
###壊す;###
}for(int i=0;i {
Ep[フラグ].wage[i]=*pchar;
if(*pchar ==',')
###壊す;###
}for(int i=0;i {
Ep[フラグ].アドレス[i]=*pchar;
if(*pchar ==',')
###壊す;###
}for(int i=0;i {
Ep[フラグ].number[i]=*pchar;
if(!*pchar )
###壊す;###
}//printf("%s",buf);
### フラグ;###
}fclose(pf);
system("一時停止");
0を返す;
}
C 言語の txt ファイルでデータ変数を使用する方法
fopen 関数と fscanf 関数を使用して、txt ファイルからコンテンツを読み取り、簡単な操作を実行します。
1.Fopen 関数のプロトタイプ: FILE * fopen(const char * path, const char * mode);
fopen 関数の最初のパラメータはファイル パス、2 番目のパラメータは開くメソッドです。次のメソッドがあります:
r ファイルを読み取り専用モードで開きます。ファイルは存在している必要があります。
r ファイルを読み取り/書き込みモードで開きます。ファイルは存在している必要があります。
rb は、読み取りおよび書き込み用にバイナリ ファイルを開き、データを読み取ることができるようにします。
rw 読み取りと書き込み テキスト ファイルを開き、読み取りと書き込みを可能にします。
w 書き込み専用ファイルを開きます。ファイルが存在する場合、ファイル長は 0 にクリアされ、ファイルの内容は消去されます。ファイルが存在しない場合は、ファイルを作成します。
w 読み取りおよび書き込み可能なファイルを開きます。ファイルが存在する場合、ファイルの長さはゼロにクリアされます。つまり、ファイルの内容は消去されます。ファイルが存在しない場合は、ファイルを作成します。
a 書き込み専用ファイルを追加モードで開きます。ファイルが存在しない場合はファイルが作成され、ファイルが存在する場合は書き込まれたデータがファイルの末尾に追加され、ファイルの元の内容が保持されます。 (EOF 文字は予約済み)
a 読み書き可能なファイルを追加モードで開きます。ファイルが存在しない場合はファイルが作成され、ファイルが存在する場合は書き込まれたデータがファイルの末尾に追加され、ファイルの元の内容が保持されます。 (元の EOF 文字は保持されません)
wb 書き込み専用の新しいバイナリ ファイルを開くか作成します。データ書き込みのみが許可されます。
wb 読み取りおよび書き込み バイナリ ファイルを開くか作成して、読み取りと書き込みを可能にします。
wt 読み取りと書き込み用にテキスト ファイルを開くか作成します。読み取りと書き込みは許可されます。
at は、読み取りおよび書き込み用にテキスト ファイルを開き、テキストの末尾にデータを読み取りまたは追加できるようにします。
ab は、読み取りおよび書き込み用にバイナリ ファイルを開き、ファイルの末尾にデータを読み取りまたは追加できるようにします。
上記の形式文字列には、rb、w b、ab などの b 文字を追加できます。 b 文字は、開かれたファイルがプレーン テキスト ファイルではなくバイナリ ファイルであることを関数ライブラリに伝えるために追加されます。 。
戻り値: ファイルが正常にオープンされると、ストリームを指すファイル ポインターが返されます。ファイルのオープンに失敗した場合は、NULL が返され、エラーコードが errno に格納されます。
2.ルーチン:
1
2
3
4
5
6
###7###
89
10
11
12
####含む######
#F_PATH "d:\\myfile\\file.dat"を定義します文字;
intmain(){
FILE*fp=NULL; //注意が必要です
fp=fopen(F_PATH,"r");
if(NULL==fp) return-1; //エラーコードを返す場合
while(fscanf(fp,"%c",&c)!=EOF) printf("%c",c); //テキストから読み取ってコンソールに出力します
fclose(fp);
fp=NULL; //null を指す必要があります。そうでない場合は、元の開いたファイル アドレスを指すことになります
return0;
}
C 音声はどのようにして txt ファイル内の特定の行を読み取って変数に割り当てるのでしょうか
最も簡単な方法は、1 行ずつ読み取り、必要なデータのみを取得することです。以下は私が書いた簡単な例ですが、賞品を 3 回引きましたが、重複はありませんでした。
####含む ###### ####含む ###### ####含む #######define PEOPLE_NUM 10 //ファイルには 10 人の名前があります
int num;
fseek(fp, 0, SEEK_SET);
printf("開始...\n");
num = rand() % PEOPLE_NUM 1;
for(i = 0; i {
fgets(賞品名, 32, fp);
}
printf("%s が賞品を獲得します!!!\n", 賞品名);
}
int main()
{
FILE* fp = fopen("name.txt", "r");
int award_num;
int i;
文字賞品名[32] = {0};
srand(時間(0));
for(i = 0; i {
printf("\n");
get_prize(fp, 賞品名);
}
fclose(fp);
0を返す;
}ファイルは次のようになります:
スクリーンショットの実行:
この種のプログラムを作成する場合、プログラムが処理しやすいように、名前を保存するファイルをきちんと整理する必要があります。幸運を。
以上がC言語でファイルデータを構造体変数に代入する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Windowsの設定でのドライブヘルス警告はどういう意味ですか?ディスク警告を受け取ったときに何をすべきですか?このPHP.CNチュートリアルを読んで、この状況に対処するための段階的な指示を取得してください。

記事では、誤った編集からWindowsレジストリ、予防策、バックアップ方法、潜在的な問題の編集について説明します。主な問題:システムの不安定性と不適切な変化によるデータ損失のリスク。

記事では、システムの健康のためのWindowsサービスの管理、開始、停止、サービスの再起動、安定性のためのベストプラクティスなどについて説明します。

Steam Cloudエラーは、多くの理由によって引き起こされる可能性があります。ゲームをスムーズにプレイするには、ゲームを開始する前にこのエラーを削除するためにいくつかの対策を講じる必要があります。 PHP.CNソフトウェアは、この投稿でより有用な情報と同様に、いくつかの最良の方法を紹介します。

「Windowsメタデータとインターネットサービス(WMIS)への接続が確立できなかった」が表示される場合があります。イベントビューアのエラー。 PHP.CNからのこの投稿では、Windowsメタデータとインターネットサービスの問題を削除する方法を紹介します。

記事では、リターンやバルクの変更など、ウィンドウ上のファイルタイプのデフォルトアプリの変更について説明します。主な問題:組み込みのバルク変更オプションはありません。

KB5035942更新問題 - クラッシュシステムは一般にユーザーに発生します。 Imburitedの人々は、クラッシュするシステム、インストール、健全な問題など、一種のトラブルから抜け出す方法を見つけることを望んでいます。これらの状況をターゲットにして、この投稿はphp.cn wilが発行しました

この記事では、システム設定を管理するためにWindowsでグループポリシーエディター(gpedit.msc)を使用する方法、一般的な構成とトラブルシューティング方法を強調する方法について説明します。 Gpedit.mscはWindows Home Editionsでは利用できないことに注意してください。
