我在使用strcmp
时遇到了困难。我在一个单独的else
语句(未列出)中进行调用,它运行正常。这可能是内存问题吗?
while(inHere == 1)
{
int numberOfOccupiedTables = 0;
cout << "\nSelect a table below\n---------------\n\n";
for(int i = 0; i < tables->size(); i++)
{
if(tables->at(i)->open == 0)
{
cout << "Table " << tables->at(i)->value << "\n";
numberOfOccupiedTables++;
}
}
if(numberOfOccupiedTables == 0)
cout << "No customers found.\n";
else
{
cout << "(q to back out) Enter number of table: ";
char* choice = (char*)malloc(sizeof(char)*256);
fgets(choice,256,stdin);
if(strcmp(choice, "q\n") == 0)
inHere = 0;
}
答案 0 :(得分:1)
如果fgets()
因为到达文件末尾而失败,则不会向字符串添加空终止符。在执行NULL
之前,请检查以确保它没有返回strcmp()
。