gpt4 book ai didi

c++ - 我怎样才能让这个数组填充我的输入值?

转载 作者:太空宇宙 更新时间:2023-11-04 14:17:16 28 4
gpt4 key购买 nike

我正在尝试填充一个我希望是“动态”的数组,以便我可以在运行时根据需要向其中输入尽可能多的条目。但是,我假定指针 NthTeam 指向的数组未填充:

int* NthTeam = NULL;    

NthTeam = (int*)realloc(NthTeam,(playerCounter*STND_NO_GAMES)*sizeof(int));

// loops through each player's standard number of games
for (int i = 1; i <= STND_NO_GAMES; i++) {
//input the score into the remalloced array
cout << "Enter player " << playerCounter << "'s score " << i << ": ";
cin >> inputValue;
NthTeam[((playerCounter-1)*STND_NO_GAMES+(i-1)))] = SanityCheck(inputValue);
}

但是,当我在我的代码中使用 cin >> NthTeam[(playerCounter - 1) * STND_NO_GAMES + (i - 1)] 时,它确实有效......数组填充。

我被引导相信来自this link您可以像使用常规数组一样使用 NthTeam,但我认为这不是这里发生的事情。我不能只使用 cin 的原因是因为我应该在允许输入到数组之前对输入执行有效性检查。

我在谷歌上找不到答案;其中大部分对于我现在所处的位置来说太复杂了。

最佳答案

假设您正在使用 C++ 进行编程,标准库可以提供帮助。例如:std::vector .这里是脑残修改,一定要#include <vector> :

std::vector<int> NthTeam;    

// loop through each player's standard number of games
// inputting the score into the vector

for (int i = 1; i <= STND_NO_GAMES; i++) {
cout << "Enter player " << playerCounter << "'s score " << i << ": ";
cin >> inputValue;
NthTeam.push_back(SanityCheck(inputValue));
}

您确实需要考虑输入无效输入时会发生什么(例如输入“tomato”的分数)。考虑这将如何影响 cin 的错误状态,如果您在上次尝试产生错误时尝试从中读取另一个整数,它将做什么,以及 inputValue 是什么会的。

可能您仍然需要“SanityCheck”……但它可能会理所当然地认为它只需要检查整数。

关于c++ - 我怎样才能让这个数组填充我的输入值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10233445/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com