以前質問の内容がたらずにもう一度同じ質問をすることをお許しください。
AとBのファイルに同じ構造体のデーターを読み込んだとして、どのように書けば構造体のデーターをファイルAで変えたものをBのファイルからも値が変わっていたり、Bのファイルで変えた値をAのファイルで読み込んだり、することができますか?
static struct{
char *name[2];
double d_data[2];
int i_data[4];
double s_data[2];
int state[2][3];
int regi[5];
}kya_data[2]={ {
{ "奈美" , "爆弾" },
{
43.0000 ,
54.0000 ,
} , {
50 , 50 , 50 , 50
} , {
0.100,
0.100,
} , {
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 }
} , {
100 , 0 , 0 , 0 , 0
} },{
{ "由美" , "湖" },
{
23.0000 ,
76.0000 ,
} , {
50 , 50 , 50 , 50
} , {
0.100,
0.100,
} , {
{ 0 , 0 , 0 } ,
{ 0 , 0 , 0 }
} , {
0 , 0 , 0 , 0 , 100
} }
};
No.2ベストアンサー
- 回答日時:
「ファイル」がソースファイルの意味だとして、
・構造体の宣言をヘッダファイルに書く。
・そのヘッダを構造体を読み書きするソースにインクルードする。
・ソースファイルA,Bのどれかに構造体を定義、初期化する。
例えば下のような3つのファイルに分割してコンパイルすればよいでしょう。
(それと char *name[2]; では2つの文字列ではなく、ポインタの配列になってしまいますよ)
/* --- ヘッダファイル (KyaData.h) --- */
struct KyaData { /* KyaData構造体の宣言 */
char name[2][16];
double d_data[2];
int i_data[4];
double s_data[2];
int state[2][3];
int regi[5];
};
/* kya_data配列のextern宣言 */
extern struct KyaData kya_data[2];
/* 関数overwriteのextern宣言 */
extern void overwrite(void);
/* --- ソースファイルA --- */
#include <stdio.h>
#include "KyaData.h" /* ヘッダファイルのインクルード */
struct KyaData kya_data[2] = { /* kya_data配列の定義 */
{
{ "奈美", "爆弾" },
{ 43.0000, 54.0000 },
{ 50, 50, 50, 50 },
{ 0.100, 0.100 },
{ { 0, 0, 0 } , { 0, 0, 0 } },
{ 100, 0, 0, 0, 0 }
},
{
{ "由美", "湖" },
{ 23.0000, 76.0000 },
{ 50, 50, 50, 50 },
{ 0.100, 0.100 },
{ { 0, 0, 0 }, { 0, 0, 0 } },
{ 0, 0, 0, 0, 100 }
}
};
int main(void)
{
printf("%s, %f\n", kya_data[0].name[0], kya_data[0].d_data[0]);
overwrite(); /* kya_data配列の中身を変更 */
printf("%s, %f\n", kya_data[0].name[0], kya_data[0].d_data[0]);
return 0;
}
/* --- ソースファイルB --- */
#include "KyaData.h" /* ヘッダファイルのインクルード */
void overwrite(void) /* 関数overwriteの定義 */
{
kya_data[0].d_data[0] = 11.5;
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
あるあるbotに投稿したけど採用されなかったあるある募集
あるあるbotに投稿したけど採用されなかったあるあるをこちらに投稿してください
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
構造体のextern方法
C言語・C++・C#
-
分割コンパイルの#defineについて
C言語・C++・C#
-
fgetsなどのときのstdinのバッファを消すには?
C言語・C++・C#
-
-
4
C言語で、メモリを解放しないで終わるプログラム
C言語・C++・C#
-
5
2重定義って??
C言語・C++・C#
-
6
Enterキーを押されたら次の処理に移るという事をしたい。
C言語・C++・C#
-
7
戻り値で構造体を返すことは可能でしょうか?
C言語・C++・C#
-
8
多重定義が起きている?--lnk2005エラー:VC++
C言語・C++・C#
-
9
#defineの定数を文字列として読み込む
C言語・C++・C#
-
10
バッファとは何ですか
C言語・C++・C#
-
11
変数名の付け方
Java
-
12
関数から配列を返すには?
C言語・C++・C#
-
13
fopenで別ディレクトリにファイルをオープンしたい
C言語・C++・C#
-
14
DWORDの実際の型は何でしょうか
C言語・C++・C#
-
15
ファイルから読み込んだデータを構造体に格納できますか?
C言語・C++・C#
-
16
<unistd.h>をVisualStudioでつかえるようにする
C言語・C++・C#
-
17
構造体の中の構造体
C言語・C++・C#
-
18
【gcc・cygwin】multiple definitionエラーの解決法
C言語・C++・C#
-
19
構文エラー;"が型の前にありませんとは、どうしたら解決できるのですか。"
C言語・C++・C#
-
20
変数の前のビックリマークについて!
PHP
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Resource id #3 と表示されま...
-
TEXTAREAに書いた改行コードを...
-
別ファイルの構造体の値を読み...
-
VBAでcsvファイルもシートもあ...
-
文字列変換について
-
【PHP】csvファイルへの書き出...
-
fsockopen関数について
-
複数行のデータのPOST処理に関して
-
エラーメッセージ(無効な間接...
-
stdClass Objectを連想配列のよ...
-
smartyでページングするには
-
php Undefined variableエラー
-
PHPのアクセスカウンターのバグ...
-
ラジオボタンのチェックの付け方。
-
rubyで複数列のデータを一行に...
-
クラスで使用する「参照渡し」...
-
PHP5でCSVの指定行データだけを...
-
$a[x]と$a['x']
-
デザインとプログラムの分離
-
配列同士の足し算のループ処理
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Resource id #3 と表示されま...
-
ヒアドキュメントの中のfor文
-
CSVファイルの最終行のデー...
-
PHPでCSVの一部の行を編集したい
-
別ファイルの構造体の値を読み...
-
エラーメッセージ(無効な間接...
-
複数行のデータのPOST処理に関して
-
UTF-8のXMLがSJISのPHPで文字化け
-
csvの内容を行単位で削除したい
-
curlをPHPで書く方法
-
PHP: 未定義エラーの回避方法を...
-
PHP SimpleXml unsetについて
-
stdClass Objectを連想配列のよ...
-
C言語でCSVファイルの行数を読...
-
FortranのOPEN文
-
PHP、CSVファイルの日本語デー...
-
array_multisortについて
-
CSVでアップロードしたデータの...
-
テキストデータから指定行の削除
-
文字列変換について
おすすめ情報