我想比较2个字符串,但是当我执行一个strcmp
函数时,它告诉我:
'strcmp' : cannot convert parameter 1 from 'std::string'
我怎样才能解决这个问题?
这是我的代码:
int verif_file(void)
{
string ligne;
string ligne_or;
ifstream verif("rasphone");
ifstream original("rasphone.pbk");
while (strcmp(ligne, "[SynCommunity]") != 0 &&
(getline(verif, ligne) && getline(original, ligne_or)));
while (getline(verif, ligne) && getline(original, ligne_or))
{
if (strcmp(ligne, ligne_or) != 0)
return (-1);
}
return (0);
}
您的编译器给您一个错误,因为strcmp
它是C风格的函数,需要使用类型const char*
为实参的参数,并且没有从std::string
到的隐式转换const char*
。
并且尽管您可以使用std::string
的c_str()
方法来检索这种类型的指针,但是由于您正在使用std::string
对象,因此应该改用运算符==
:
if (ligne == ligne_or) ...
或与const char*
:
if (ligne == "[Syn****]") ...
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句