c ++解决指针和整数之间的比较

use*_*764 0 c++

do {
    getline (myfile,temp);
    if (temp[0] != "="){
        MyAlbums[i].tracks.push_back(temp);

    }
    else {
        break;
    }
}while(true);
Run Code Online (Sandbox Code Playgroud)

给我这个错误:

ISO C++禁止指针和整数之间的比较[-fpermissive]

我试图循环文本文件中的行和'push_pack'如果该行不以"="等于字符开头.否则我想摆脱循环.

任何帮助都非常适合!

tao*_*ocp 6

if (temp[0] != "="){
Run Code Online (Sandbox Code Playgroud)

应该

if (temp[0] != '='){
Run Code Online (Sandbox Code Playgroud)

原因是temp[0]类型char(假设temp是您读入的字符串),您应该将它与char文字'='而不是字符串文字进行比较"=".我假设您已temp成功阅读,因此如果不是这样,您可能需要检查.

编辑(感谢Adam Liss)

字符串文字像是"="(const char *)类型,它们用双引号括起来; 单个字符用单引号括起来.因此,你有关于比较a char(char literal are integers)的编译抱怨消息const char *.

引自此处:IBM C++文档

C  A character literal has type int.
C++ A character literal that contains only one character has type char, 
which is an integral type.
Run Code Online (Sandbox Code Playgroud)