我正在构建一个包含2个服务器和1个客户端的系统进行预订。
我找到了一个障碍,现在我将解释:
- 服务员A
- 服务员B
客户
一旦客户从菜单中选择他想要预订的内容以及何时,
服务器B必须在结构中查找日期并检查它是否可用,如果是发送确定,如果它没有发送否作为答案。
要做到这一点,我想到了以下方式,但它不起作用:
bool search(int bet2, bool flag)
{
int i=0;
for(i=0; i < 11; i++){
if(strcmp(content[i].date, content[bet2].date) == 0)
{
if (content[i].mark == true)
{
printf("Date Busy");
return false;
} else {
content[i].mark = true;
printf("Date booked day: %s",content[i].date);
return true;
}}
}
}
在原型中我声明:
bool search (int bet2, bool flag);
在主要内容我声明如此:
search (bet2, flag);
结构是这样的:
typedef struct choice {
char name [40];
char date [40];
bool mark;
} Choice;
Choice content [10];
现在我有疑问,但是类型bool存在于C?
无论如何,我错在哪里?
抱歉,但今天早上我写了一行代码并且我被困在这里,可能我没有看到它。此代码返回日期是好的,哪里错了?
答案 0 :(得分:0)
content [i] .mark = true
将是
content [i] .mark == true
为避免此类问题,您可以使用此类比较
true == content [i] .mark
在这种情况下,即使您忘记了==
并使用=
,编译器也会抱怨。
是的,更好的是使用简单易读
if( content [i] .mark )
此外,C中没有名为Else
的关键字。它将是else
。
删除您编写}
的代码中的额外}}
。范围发生了变化,这是错误的。
另外为什么在这里使用return flag = false
它没用。只需return false
或return true
即可。由于flag
的更改值不会在任何地方使用。