【发布时间】:2018-06-05 10:16:42
【问题描述】:
我在将我的 BUFFER 转换为字符串时遇到问题,我想知道如何将我的 BUFFER、recv 从套接字转换。
我想要我的db[0] = buffer,它的缓冲区包含一个像“helloworld”这样的字符串,所以如果我想打印db[0],我会得到“helloworld”。
while(1){
recv(newSocket, buffer, BUFFER_SIZE, 0);
if(strcmp(buffer, "q") == 0){
printf("Deconnexion de %s:%d\n", inet_ntoa(newAddr.sin_addr), ntohs(newAddr.sin_port));
break;
}else{
printf("%s\n",buffer);//Client recu:
send(newSocket, buffer, strlen(buffer), 0);
bzero(buffer, sizeof(buffer));
db[i]=buffer;
printf("%c",db[i]);
//mysql_q(db[i]);// query function
i++;
}
}
db 类型是一个 char 数组,但是当我编译时它给了我这个错误:
server.cpp:81:12: error: invalid conversion from ‘char*’ to ‘char’ [-fpermissive]
db[i]=buffer;
【问题讨论】:
-
db和buffer的类型是什么,请给出定义?错误很明显db[i]是char和buffer是char *。你应该改变db类型 -
什么样的数据库?字符[]?您不应该将 char* 分配给 char,db[i] 是一个 char。 char* db[i] 更好。
-
c++不是c。选择一种语言。 -
这是我的数据库和缓冲区类型:char buffer[BUFFER_SIZE];字符数据库[BUFFER_SIZE]; @Ôrel
-
@azures 编辑您的问题并在其中插入补充。 db[i] 是一个 char,不能接收 char[] 类型的值。