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