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

(86评价)
价格: 3079.00元
getline在for循环中只可以使用一次吗
壹丶发起了问答2023-01-14
0
回复
252
浏览

#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循环中值进入了一次,在第二次循环后就不进去了

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