本帖最后由 一路向北lm 于 2018-7-8 16:32 编辑
大家好 我写了一个tcp客户端,在调用函数时出现问题:
main()
{。。。。 //该部分为socket即填充网络结构体部分
printf("please input:");
if(scanf("%d", &n) < 0)
switch(n)
{
case 1:
do_register(msg, sockfd); break;
default:
printf("end switch\n");
}
connect(sockfd, (struct sockaddr *)&serveraddr, addrlen);
}
do_register()
{
msg.type = 'R';
printf("input your name:");
int n = scanf("%s", msg.name);
printf("input your passwd:");
int n = scanf("%s", msg.data);
}
connect放在switch后面,调用是成功了,可是在被调函数中我打印n的值是0;两个都是0,这是为什么啊?
而且我把scanf换成fgets后第一个fgets都没阻塞直接阻塞到第二个fgets,而且打印了被赋值的msg.name为空,这又是为什么啊??
把connect提到填充网络结构体后(就是main中那部分代码的前面)。
这两个疑问 求大神帮忙解答下,谢谢。
|