字符串'G'未显示
String 'G' is not showing
所以这是client.cpp文件。那么问题出在哪里呢?我声明这个字符串'G',我输入昵称,然后在这里'cout<lt;G<lt;":"<lt;sbuffer。消息<
附言:我想我不需要发布server.cpp文件,是吗?
#pragma comment(lib, "Ws2_32.lib")
#include <WinSock2.h>
#include <Windows.h>
#include <iostream>
#include <string>
using namespace std;
SOCKADDR_IN addr;
SOCKET sConnect;
string G;
struct Buffer
{
int ID;
char Message[256];
};
int ClientThread()
{缓冲区缓冲区;
char buffer[sizeof(sbuffer)] = {0};
for(;; Sleep(10))
{
if(recv(sConnect, buffer, sizeof(sbuffer), NULL))
{
memcpy(&sbuffer, buffer, sizeof(sbuffer));
cout << G << ":" << sbuffer.Message <<endl;
}
}
return 0;
}
int main()
{系统("cls");
int RetVal = 0;
WSAData wsaData;
WORD DllVersion = MAKEWORD(2,1);
RetVal = WSAStartup(DllVersion, &wsaData);
if(RetVal != 0)
{
MessageBoxA(NULL, "Winsock startup failed", "Error", MB_OK | MB_ICONERROR);
exit(1);
}
sConnect = socket(AF_INET, SOCK_STREAM, NULL);
addr.sin_addr.s_addr = inet_addr("127.0.0.1");
addr.sin_port = htons(1234);
addr.sin_family = AF_INET;
cout << "Connect to Masterserver? [ENTER]" <<endl;
getchar();
RetVal = connect(sConnect, (SOCKADDR*)&addr, sizeof(addr));
if(RetVal != 0)
{
MessageBoxA(NULL, "Could not connect to server", "Error", MB_OK | MB_ICONERROR);
main();
}
else
{
string G;
cout << "Nickname: " << endl;
cin >> G;
CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE) ClientThread, NULL, NULL, NULL);
for(;; Sleep(10))
{
char* buffer = new char[256];
ZeroMemory(buffer, 256);
cin >> buffer;
getchar();
send(sConnect, buffer, 256, NULL);
}
}
return 0;
}
您在顶部全局作用域中声明的string G
被您在main
作用域中宣布的string G
覆盖,因此您读入的ClientThread
方法不可用。删除主范围中的声明。
如果这都是同一个文件,那么你声明G两次,而你只应该声明一次。
// string G;
cout << "Nickname: " << endl;
cin >> G;
相关文章:
- 显示字符串的集合和子集
- 为什么我的 cout 在输出中没有显示字符串?
- 如何让我的构造函数和函数工作,以便我的 main() 能够同时显示字符串和 int 数据
- 为什么程序显示字符串超出范围
- C++ 显示字符串变量"<不完整类型>的调试窗口
- 以C++显示字符串矢量<int>地图
- 用于显示字符串每个字符的 for 循环 |C++
- 错误-无法访问Omnet中创建新节点的显示字符串
- 为什么 cout 不显示字符串变量 rnd
- c++中的sizeof显示字符串大小少一个
- 从文件中读取和显示字符串
- 在VC2010中使用Char数组显示字符串时发生运行时错误
- 尝试对角线显示字符串时,我遇到c ++程序崩溃
- 无法使用用户定义的字符串类显示字符串
- 如何显示字符串中多次出现的字符
- 显示字符串的C++
- C++字符串。为什么答案显示字符串"狗"大于"猫",然后"猫"大于"狗"?
- 错误在哪里?显示字符串C++Vignere密码
- 在C++中显示字符串的矢量
- 显示字符串的地址