我相信我所做的一切都是正确的,但字符串没有被分配的字符填充。这是我通过测试得知的:random是正确的字符,q是正确的int,s [i] .name是一个字符串。我曾尝试使用.at(q)和[q],但没有任何工作。at()在函数中不起作用
这是我的错误:在 中止(核心转储)
for (int i = 0; i < num; i++) {
int q = 0;
char random = 50;
for (; random != 32;) {
file.get(random);
s[i].name.at(q) = random;
q++;
}
q = 0;
}
cout << s[0].name;
它看起来像(我),就像你试图给一个rval分配一个'char'(并且rval不存在)。 –
根据你的逻辑,'q'可以比s [i] .name'具有更大的值。 –