gpt4 book ai didi

c++ - "main.exe"出现崩溃错误

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

我有一个简单的错误。该项目是创建一个基本菜单的骨架。新命令只是从 1 计数到用户输入的整数。在继续之前,我已经发布了指向包含我的 .cpp 文件的 pastebin 的链接:
http://pastebin.com/pAi9EiEi

程序的其余部分运行并工作。但是,错误很简单。只要我输入任何命令,它就会崩溃。运行错误检查后,我发现错误不是 while 而是 if 语句。错误在类似这样的行上:

if (stricmp(strstr(newCommand, cmd2), newCommand) == 0)

这一行应该做的是,复制 cmd2 中的内容并将其放入 newCommand,然后将其与不区分大写的内容进行比较:

char newCommand[] = "new";

最佳答案

“这一行应该做的是复制 cmd2 中的内容并将其放入 newCommand,然后将其与不区分大小写的内容进行比较:”

如果代码这样做,它会将 cmd2 的先前内容与自身进行比较,不是吗?

copy cmd2 -> newCommand
is cmd2 == newCommand?

如果用户键入“open”,那么在循环的第一次迭代中,它会将“open”复制到“newCommand”中,并且您的程序中将不再有字符串“new”。

strstr 在第一个字符串中搜索第二个字符串。

strstr("hello world", "world"); // returns pointer to 'world' in 'hello world'
strstr("biscuit", "new"); // returns NULL to indicate new doesn't occur in 'biscuit'

当然你真正想做的只是:

if (stricmp(newCommand, cmd2) == 0) {
// match
}

顺便说一句,如果您确实想将“cmd2”复制到“newCommand”,您会想使用strcpy(destinationStr, sourceStr);

strcpy(newCommand, cmd2);

关于c++ - "main.exe"出现崩溃错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19776726/

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