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'如果该行不以"="等于字符开头.否则我想摆脱循环.
任何帮助都非常适合!
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)
| 归档时间: |
|
| 查看次数: |
1307 次 |
| 最近记录: |