坚持结构(c ++)

时间:2015-06-23 03:05:00

标签: c++ function struct

好的,这就是我被要求做的事情“制作一个名为Coordinate的结构,其中包含 地球表面上一点的纬度和经度。结构也应该存储一个 坐标的标签或名称(例如,“卡尔加里”)。纬度和经度都是成员 变量应为double类型,并应以弧度为单位进行存储。 定义结构后,编写一个函数来读取标签/名称以及纬度和 单个坐标的经度,并将它们存储在随后返回的Coordinate结构中 调用功能。该功能应该以度为单位提示角度然后 将值转换为弧度(按照上面的说法)。“

这就是我写的

struct coordinate
{
    double latitude;
    double longitude;
    string city;
};

void Readcoordinate();
int main()
{
    coordinate startPt, endPt;


}

void Readcoordinate()
{
    cout << "Enter Longitude(in degrees)" << endl;
    cin >> startPt.latitude
        >> startPt.longitude
        >> startPt.city;
}

我一直在收到错误。任何帮助? 感谢

2 个答案:

答案 0 :(得分:0)

您已在coordinate startPt, endPt;中声明了main()并且您正在尝试访问它们Readcoordinate(). To resolve error you should declare坐标startPt,endPt; in Readcoordinate()`或将它们作为参数传递。< / p>

coordinate Readcoordinate()
{
    coordinate startPt;
    cout << "Enter Longitude(in degrees)" << endl;
    cin >> startPt.latitude
        >> startPt.longitude
        >> startPt.city;
   return startPt;
}

int main()
{
      coordinate startPt, endPt;
      Readcoordinate(startPt);
      Readcoordinate(endPt);
}
void Readcoordinate(coordinate &Pt)
{
   cout << "Enter Longitude(in degrees)" << endl;
    cin >> Pt.latitude
        >> Pt.longitude
        >> Pt.city;
}

答案 1 :(得分:0)

您的变量在main中定义,因此其范围仅限于main。 您需要在使用它们的函数中定义它们,或者您可以将这些变量定义为全局变量,以便可以在main和函数中访问它们。您可能还需要在main中调用该函数。

局部变量:

void Readcoordinate();
int main()
{
    Readcoordinate();
}

void Readcoordinate()
{
    coordinate startPt, endPt;    // Locally defined
    cout << "Enter Longitude(in degrees)" << endl;
    cin >> startPt.latitude
    >> startPt.longitude
    >> startPt.city;
}

全局变量:

coordinate startPt, endPt;    // Globally defined
void Readcoordinate();
int main()
{
    Readcoordinate();
}

void Readcoordinate()
{
    cout << "Enter Longitude(in degrees)" << endl;
    cin >> startPt.latitude
    >> startPt.longitude
    >> startPt.city;
}