2016-11-09 12 views
-4

何度もフォーマットを変更しても、さまざまなエラーが発生します。最終的には、モーターをターゲットとする機能を望遠鏡に保存し、座標を設定できるプログラムになります。私がこの設定で間違っていることを説明する上での助けには大変感謝しています。念のためコードが機能しません(C++の共用体および構造体)

//IDENTIFY RECEIVER OF MESSAGE/TYPE OF MESSAGE/VIEW ALL TO 1 DEVICE/VIEW SPECIFIC MESSAGE

#include "messaging.h" 
#include <string.h> 
#include <stdio.h> 

using namespace std; 

typedef struct MGR{ 
mess_types messagetype; 
int DeviceID; 
union E{ 
    //why arte these underlined? 
    char INST[STRSIZE]; 
    int codes[NBRCODES]; 
    float coords[NBRCOORDS]; 
} message; 
};// info; 


void messager(){ 
MGR my_data; 
my_data.messagetype = INST; 
my_data.DeviceID = TECH1; 
strcpy(my_data.message.INST, "GO HOME"); 

my_data.messagetype = CODES; 
my_data.DeviceID = MOTOR1; 
for (int nbr = 0; nbr < NBRCODES; nbr++){ 
    my_data.message.codes[nbr] = nbr; 
    print_message(my_data); 
} 
} 
int print_message(MGR mydata){ 
MGR noot; 
scanf("%s", &mydata); 
switch (mydata.messagetype){ 
case INST: 
    printf("Message to Device %d", noot.DeviceID); 
    break; 
case CODES: 
    printf("The setup codes for device %d are: \n", noot.DeviceID); 
    for (int code = 0; code < NBRCODES + OFFSET; code++){ 
     printf("%4d\t", noot.message); 
    } 
     break; 
case COORDS: 
    printf("The setup codes for device %d are: \n", noot.DeviceID); 
    for (int code = 0; code < NBRCODES + OFFSET; code++){ 
     printf("%4d\t", noot.message); 
    } 
     break; 
    } 
    printf("%c", mydata.messagetype); 
    return(0) 
    } 

    void Sendmessage(){ 
     printf("This program does not work... it is under construction..."); 
} 

:ここにコードがここにヘッダファイルは、エラー・リスト

#include "sprint1.h" 
#include <string.h> 
#include <stdio.h> 
#define STRSIZE 50 
#define NBRCODES 200 
#define NBRCOORDS 200 
#define OFFSET 100 
#define FACTOR 50 
#define TECH1 123 
#define MOTOR1 4556 
void messager(); 
int print_message(MGR mydata); 
void Sendmessage(); 
enum mess_types {INST, CODES, COORDS}; 

です:https://drive.google.com/file/d/0B0CXbbHDOrweQVVvOVU1M0VRaEE/view?usp=sharing

+1

エラーが発生した場合は、それらを共有する必要があります。少なくとも最初の数人以外のすべてを表示する必要はありません。 – NathanOliver

+0

どのようなエラーが表示されていますか?コードのどこに?あなたは少しデバッグを試みましたか? –

+0

私はそれを実行しようとするまで、コードにエラーは表示されませんでしたが、何も下線が引かれていませんでした。私がすでに修正したものは、返品後にセミコロンを追加することです。 MGRは宣言されていない識別子であり、私はどこかでかっこが欠けていると言っています。 –

答えて

0

私が列挙されたヘッダは、「メッセージングであると仮定します。 h "

MGRは、前のヘッダーで参照されていますそれはコードの定義です。 最初の参照の前にヘッダーに定義を移動することがあります。

+0

正解ですが、単にOPを「何がmess_typesですか?」に公開していますか?そのように移動する必要もあります。そして、私が['scanf'](http://en.cppreference.com/w/cpp/io/c/fscanf)と[' printf'](http://en.cppreference。 com/w/cpp/io/c/fprintf)が悪用されています。あなたがそれをすべてソートしたら、OPのコードの半分を書き直すでしょう。あなたが完全にそれらに答えることはできないので、これらの種類の自由な質問から離れてください。 – user4581301

+0

ありがとう:)そのエラーを取り除いた。列挙型を構造体の前に置く必要がありました。構造体はヘッダにあります。 –

関連する問題