卡在结构上(c++)

Stuck on Structs(c++)

本文关键字:c++ 结构上      更新时间:2023-10-16

好吧,这就是我被要求做的"制作一个名为Coordinate的结构,它包含地球表面一点的纬度和经度。结构还应存储坐标的标签或名称(例如"卡尔加里")。纬度和经度成员变量应为double类型,并且应以弧度为单位存储。一旦定义了结构,就编写一个函数来读取标签/名称以及纬度和单个坐标的经度,并将其存储在坐标结构中,然后返回调用函数。函数应提示以度为单位的角度,然后将值转换为弧度(如上所述)。"

这是我写的

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;
}

我不断地犯错误。有什么帮助吗?感谢

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

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;
}

您的变量是在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;
}