| 本帖最后由 一路向北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中那部分代码的前面)。
 这两个疑问 求大神帮忙解答下,谢谢。
 
 
 
 |