我在 main.cpp 有一个代码
cout<<endl<<"Please enter filename: ";
cin.ignore();
getline(cin,fileName);
fin.open(fileName.c_str());
if(fin.is_open())
{
while(fin.good())
{
fin.getline(line,20,',');
if(!strcmp(line,"Map2D"))
{
cout << "Map 2D" << endl;
}
else if(!strcmp(line,"Map3D"))
{
cout << "Map 3D" << endl;
}
else if(!strcmp(line,"Dot2D"))
{
cout << "Dot 2D" << endl;
}
else if(!strcmp(line,"Dot3D"))
{
cout << "Dot 3D" << endl;
}
}
}
这是我的文本文件
Map2D, [3, 8]
Dot3D, [7, 12, 3], [-9, 13, 68]
Map3D, [1, 3, 8]
Dot2D, [5, 7], [3, 8]
Map2D, [6, 2]
但问题是当我尝试编译和运行时,它会保留打印 map2D 并且 Map3d 甚至不会被 cout
我在 strcmp 上的逻辑有问题吗
更新:
我改为 if(strstr(line,"Map2D") 及其工作。
感谢所有帮助。