C++服务器程序循环打印

C++ Server Program Print While Loop

本文关键字:打印 循环 程序 服务器 C++      更新时间:2023-10-16

我正在创建一个服务器/客户端套接字程序,并且正在制作一种打印服务器输入的方法。

这是我的代码:

void *admin_handler (void *ptr) {
char strBuf [100000];
const char strExit [20] = "Server: terminated.";
while(1) {
scanf ("%s", strBuf);
int i;
for (i=0; i < nClient; i++){
if (strBuf == "Exit"){
write (nFDList [i], strExit, strlen (strExit) + 1);
}
else {
write (nFDList [i], strBuf, strlen (strBuf) + 1);
}
}
};
}

但是,当我执行时,即使我输入"退出",它仍然执行 else 语句。如何修改键入"退出"时要执行的 if 语句?

C中比较字符串的最佳方法是使用strcmp()(如果对未知字符串的安全性感兴趣,则使用strncmp())。

相等运算符==操作数"衰减"到指针后直接比较操作数;指针不会改变,当然是不同的。 相比之下,strcmp()检查指向的存储器的内容,这可能是相等的。

顺便说一句,Java:==检查两端是否是相同的对象(类似于 C 等效对象),而.equals()检查对象内容(类似于strcmp())。

相比之下,C#重载了字符串==,以便它确实会查看内容,这对于可能使用运算符重载的语言(C 不是)非常有意义: 测试对象的标识几乎从来都不是必需的,正如我们所看到的,这是一个常见的错误来源。