質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Q&A

解決済

1回答

1766閲覧

構造体への格納時にエラーが起こる

c_rim_zon

総合スコア20

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

0グッド

0クリップ

投稿2018/08/18 03:24

raspberry pi zeroにてBluetoothで接続したゲームパッドからボタン情報を取得するプログラムをCで作成しようとしたところ,以下のようなエラーが出ました.

error:"struct joystick_struct" has no member named 'nr_buttons';
nt_btn=js->nr_buttons;

サイトからべた打ちしたものであり,なにが原因でエラーが発生しているかがわかりません.どうしたらよいのでしょうか.以下に前後のソースコードも載せます.

struct joystick_struct {
int fd;
unsigned char nr_buttons;
unsigned char nr_sticks;
short button; / button[nr_buttons] */
short stick; / stick[nr_sticks] */
char input; / input[nr_btn * 2 + nr_stk * 7 + 1] */
};

static int joystick_output(struct joystick_struct *js, const char *out_file);
static int joystick_get_input(struct joystick_struct *js);
static int joystick_get_info(struct joystick_struct *js);
static int joystick_init(struct joystick_struct *js, const char *dev_file);
static void joystick_exit(struct joystick_struct *js);
static void joystick_main(const char *dev_file, const char *out_file);

static int joystick_output(struct joystick_struct *js, const char *out_file)
{
FILE *fp = stdout;
unsigned char i, nr_btn, nr_stk;

if (out_file != NULL) { fp = fopen(out_file, "w"); if (fp == NULL) { return ERROR("fopen(%s)\n", out_file); } } nr_btn = js->nr_buttons; nr_stk = js->nr_sticks; for (i = 0; i < nr_btn; i++) { sprintf(&js->input[i * 2], "%2d", js->button[i] ? 1 : 0); } for (i = 0; i < nr_stk; i++) { sprintf(&js->input[nr_btn * 2 + i * 7], "%7d", js->stick[i]); } js->input[nr_btn * 2 + nr_stk * 7] = '\0'; fprintf(fp, "%s\n", js->input); if (out_file != NULL) { fclose(fp); } return 0;

}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2018/08/18 03:45

ソースコードは、<code>ボタン押して、'''の枠の中に貼り付けてください
c_rim_zon

2018/08/18 05:16

ご教授ありがとうございます.
guest

回答1

0

ベストアンサー

こんにちは。

Wandboxでやってみましたが、該当のエラーはでないようです。
このような時は、ご提示されている部分以外のどこかにミスがあるケースが少なくないです。

投稿2018/08/18 03:53

Chironian

総合スコア23272

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問