gpt4 book ai didi

c++ - 实现一些验证......卡住了

转载 作者:行者123 更新时间:2023-11-28 07:21:13 25 4
gpt4 key购买 nike

嘿,我正在尝试向我的程序添加一些验证以确保加载正确的文件,我的验证是基于字典文件的,我正在尝试实现一些确保文件中单词类型正确的东西比如名词和动词,我写了这个...

                    if (!type.compare("n") == 0) {
cout << "\nType is invalid please check file.\n" << endl;
system("Pause");
}

我对每种类型的词都有一个 IF 语句,所以一个用于动词、副词、形容词等,尽管从它的外观来看,它会检查所有组合的每种类型,但每个 IF 语句之间的区别是什么类型正在比较动词 if (!type.compare("n") == 0) 等等。

(一个例子)

a
the letter a
n
(blankline)

这是布局、worddefinitiontype 和一个blank 行,从外观上看它正在检查类型是否匹配所有组合...... n v adv 等等......我想改变这个它只搜索其中一个组合。以下是我将其剥离的完整功能。

最佳答案

由于 operator precedence,您的比较有问题.表达式

!type.compare("n") == 0

被编译器视为

(!type.compare("n")) == 0

这意味着当 type"n" 时,表达式为 false,因为 !type.compare("n") 为“真”,并且无论如何都不等于零。

改为做

if (type.compare("n") != 0)
{
...
}
else // No need to do `if (type.compare("n") == 0)`
{
...
}

关于c++ - 实现一些验证......卡住了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19452186/

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