gpt4 book ai didi

c++ - 比较字符会导致总线错误

转载 作者:太空宇宙 更新时间:2023-11-04 15:22:24 25 4
gpt4 key购买 nike

我迷失了尝试找出运行时错误。我有一个结构数据类型,并在数组 items[] 中实现了它。在结构中,定义了一个char name。我还使用 cin 将用户输入读入 char 数据类型。

i=0;
do {
printf("%c\n", items[i].name);
printf("%c\n", itemname);

//if ( items[i].name == itemname )
//found=true;
i++;
} while (i<numofitems || found);

如果我取消注释 if 语句,printf("%c\n", itemname); 似乎运行了数千次,然后是 Bus error: 10。请注意 numofitems 目前只有 5 个。

当前编写方式的输出:

A
C
B
C
C
C
D
C
E
C

知道为什么我不能简单地比较一个字符是否等同于另一个字符吗?

最佳答案

你的条件应该是i<numofitems && !found .现在,如果其中任何一个为真,它就会继续循环,并且 found在第三次迭代时变为真。

我会这样重写它:

for (int i = 0; i <numitems; ++i)
std::cout << items[i].name << '\n';
std::cout << itemname << '\n';

if ( items[i].name == itemname )
break;
}

关于c++ - 比较字符会导致总线错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15824181/

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