该程序应该查找以“.exe”结尾的Unix上输入的命令行参数。由于某种原因,它不起作用。这里是代码:在字符串C++的末尾比较字符
int main(int argc, char* argv[])
{
for (int i = 1; i < argc; i++)
if(findExe(argv[i]))
cout << argv[i] << endl;
return 0;
}
bool findExe(char* argument)
{
if (strlen(argument) >= 4)
{
string testExe = ".exe";
string initialWord=argument; //converts c-string to string
string temp(initialWord,(initialWord.size() - 4),4);//creates temp with last four characters from initialWord
if (!temp.compare(testExe))
return true;
}
else
return false;
}
作为一个便笺,任何想法,为什么它只是一个警告,而不是一个错误? – Naveen 2009-11-14 17:42:06
如果你使用的是gcc,试试像这样编译:g ++ -Wreturn-type ...来查看你的代码的问题。 – 2009-11-14 17:45:58
@Naveen:实际上,我没有看过它是否是错误,只是假设没有证明Pat的编译器在这方面是兼容的。我的意思是“应该”,意思是“这是编译器经常注意的事情”。假设编译器不需要拒绝代码,并且如果你正在寻找一个基本原理,那么我会推测这是因为发现这个错误需要少量的执行路径分析,所以标准可能不希望强制要求。 – 2009-11-14 17:47:16