-4

我在使用结构编程时遇到问题。我想接受可以重复多次的(整数,字符)形式的输入。然后程序会将字符存储在数组中整数指示的位置。目前,问题是消息未定义且位置未定义。

struct MessagePiece
{
    int location;
    char message;
};

void readMessage( istream& in, Message message[] )
{
    MessagePiece;
    message[256];
    Message message;

      while ( !in.fail() )
     {
             in >> location; //I'm not sure why this counts as undefined as it is defined in the struct

             if (location < 256, location >= 0)
                in >> message[location];
      }
return;
};
4

2 回答 2

2

它是未定义的,因为它只location存在于类型对象的上下文中MessagePiece

MessagePiece mp;
in >> mp.location;
于 2013-03-21T21:59:21.240 回答
0

您应该在 if 语句中使用 && 而不是 ',' 来检查条件。此外,这些行:

MessagePiece;
message[256];
Message message;

应该这样写:

MessagePiece messages[256]; //declaring an array of struct MessagePiece
char message; // a char for storing input read from the user. 

还有一件事,要么将消息作为参数,要么在函数本身中声明它。

请考虑阅读一本关于 C++ 编程的好书。

于 2013-03-21T22:09:09.213 回答