我有一个函数可以打印连接在服务器上的所有客户端。我想将所有客户端放在一个 char 列表(list lst)中,因为我需要它们在其他函数中。当我想遍历列表 lst 并打印元素时出现类似“ $@ ”的东西。我不明白为什么。这些是功能:
void get_clients_list(){
int dim,i = 0,n;
char buff[255];
bzero(buff,sizeof(buff));
recv(srv_fd,buff,sizeof(buff),0);
dim = atoi(buff);
printf("\t%d clients available:", dim);
printf("\n");
while(i < dim){
memset(buff, 0, sizeof(buff));
recv(srv_fd, buff, sizeof(buff),0);
if(n < 0){
error("ERROR reading from socket");
}
lst.push_back(buff);
printf("\t\t%s", buff);
printf("\n");
i++;
}
}
这是我如何遍历列表 lst:
get_clients_list();
iter = lst.begin();
while(iter != lst.end()) {
iter ++;
printf("clients:");
printf("%s \n",iter);
}
为什么它不打印客户端,只出现一些象形文字?