虚幻Unreal - A计划(永久有效期) 扫二维码继续学习 二维码时效为半小时

(94评价)
优惠后 ¥1899.00优惠前 ¥2299.00 双十一全年最大力度限时优惠
1对1 答疑即时回复7天无理由退款30天价保提问必答

服务保障

1对1 答疑

提供专属的一对一在线答疑,快速答疑解惑。

即时回复

及时响应学习咨询,帮助解决问题。

7天无理由退款

购买后7天内可申请无理由退款。

30天价保

购买后30天内如遇降价,可申请价保。

提问必答

对于提问做到有问必答,帮您扫清学习过程中的种种障碍

getline在for循环中只可以使用一次吗
壹丶发起了问答2023-01-14
0
回复
752
浏览

#include <iostream>
#include <string>

using namespace std;

// 第一题
typedef struct GameData
{
    string gameName;
    double grade;
}GameDate;
GameData* GameDataFunc(GameData *data, int num);

int main()
{
    // 第一题
    int num = 0;
    GameData gameData[5];
    GameData* game;
    //printf("%d\n", (sizeof(gameData) / sizeof(GameData)));
    game = GameDataFunc(gameData, sizeof(gameData) / sizeof(GameData));

    for (int i = 0; i < sizeof(gameData) / sizeof(GameData); i++)
    {
        cout << "喜欢的游戏是: " << (game + i)->gameName << ", 分数是: " << (game + i)->grade << "分." << endl;
    }
    
    return 0;
}

// 提示用户输入5个喜爱的游戏的游戏数据,包含游戏名称,游戏评分(0-10之间的小数)
GameData* GameDataFunc(GameData* data, int num)
{
    for (int i = 0; i < num; i++)
    {
        cout << "输入第" << i + 1 << "个游戏名称: ";
        getline(cin, (data + i)->gameName);
        cout << endl;
        cout << "输入该游戏的分数: ";
        cin >> (data + i)->grade;
        cout << endl;        
    }
    return data;
}

在调试的时候发现getline在for循环中值进入了一次,在第二次循环后就不进去了

发表回复
你还没有登录,请先 登录或 注册!