为什么这两个char阵列不相等
Why are these two char arrays not equal?
我有这两个char数组,它们在控制台上输出相同的值(桌面-KDOD9T),一个是从文件中读取的,另一个是通过winsock gethostname读取的。相比之下,它们并不一样。它说您无法访问该程序。
#include "pch.h"
#define _WINSOCK_DEPRECATED_NO_WARNINGS
#include <iostream>
#include <string>
#include <fstream>
#include <WinSock2.h>
#pragma comment( lib, "Ws2_32.lib" )
int main()
{
char word[255];
std::fstream stream;
stream.open("Text.txt");
stream >> word;
std::cout << word << "n";
WSADATA wsa_Data;
WSAStartup(0x101, &wsa_Data);
char buffer[255];
gethostname(buffer, 255);
std::cout << buffer << std::endl;
WSACleanup();
if (word == buffer)
{
std::cout << "Welcome!n";
for (int i = 0; i < 3; ++i)
{
std::cout << ".";
Sleep(300);
}
std::cout << std::endl;
}
else
{
std::cout << "You can't access this program from that PC!n";
Sleep(200);
exit(1);
}
getchar();
return 0;
}
数组没有可以比较的值。它们包含多个值。
当您比较两个阵列时,阵列腐烂到指针,您正在比较指针,以查看它们是否指向同一对象。当然,他们没有。
如果要比较每个字节,则可以使用memcmp
之类的函数。如果要比较两个字符串,则可以使用strcmp
。
相关文章:
- 如何在C++中比较两个char数组
- 如何更好地检查两个 char 变量是否在一组值中?
- 在 char* 数组中添加两个索引
- C++函数返回两个 char 数组的相同索引元素
- *char数组到字符串(两次运行代码和两个不同的结果)
- 为什么Xor-ing两个“ char”阵列显示垃圾位
- 如何在C/ C 中比较两个char的两个2D阵列
- 使用"const char*"和"char*"参数连接两个第三方模块
- 在C 中乘以两个char阵列
- 为什么这两个char阵列不相等
- Qthread char阵列在两个线程之间传递后被摧毁
- 在C 中使用两个CHAR变量评估布尔值
- 计数最低号码.char.从两个字符串中删除以使它们成为字眼
- 如何在c++中将计算分解为两个double和一个char
- C ++中的两个'char*'铸件有什么区别
- 比较c++中的两个char
- c++中连接两个char*的函数
- 连接两个char*会产生奇怪的结果
- 在 c++ 中使用 strcmp 比较两个 char 变量显示从 'char' 到 'const char*' 的无效转换
- 如何验证两个char *是否在Google Mock中相等?