【发布时间】:2016-07-27 16:49:27
【问题描述】:
这是我的 for 循环
string inputName;
int inputNumServices;
string inputServices[20];
do
{
cin >> inputName;
if(inputName != "$")
{
cin >> inputNumServices;
for(int i = 0; i < inputNumServices; i++)
{
cin >> inputServices[i];
}
cout << "success";
}
}
在将所有输入放入 for 循环后,它给了我一个段错误。我知道是因为它在段错误之前没有打印出“成功”
【问题讨论】:
-
如何声明
inputServices? -
定义“所有输入”。运行此程序时键入的数字是多少。
-
如果您输入的元素超过 20 个,则会出现段错误。我建议改用
std::vector。 -
并且,看在上帝的份上,检查您的 IO 成功/失败
-
您发布的内容对我来说看起来不错(如果
inputNumServices <= 20)。我的猜测是段错误稍后发生,但是您看不到成功输出,因为您没有刷新cout。您需要通过调试器运行代码并发布minimal reproducible example。