免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2451 | 回复: 3
打印 上一主题 下一主题

[应用] scanf fgets C库分割界面 聊天室 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-08-22 21:23 |只看该作者 |倒序浏览
1.我已经用线程做好了,几天刚上CSDN,才来回复,请教另一个问题:
例子:
    int i;
    char buffer[array_size];
    char send_buffer[array_size];
    printf( "please input i \n" );
    scanf( "%d", &i );
    printf( "please input the information you want to send:\n" );
    scanf( "%s", buffer );
    //fgets( buffer, array_size, stdin );

    //格式化处理
    sprintf( send_buff, "%d:%s", i, buffer );
   
我的目的是输入一个整型i, 和一串字符串(可能带空格), 然后格式化到 send_buffer 数组里面。
如果使用scanf输入,因为他不能接收空格,所以第一个空格后面的字符串会全部跳过,不能格式化到数组里。
如果用fgets, 在上面已经输入完i以后,空格貌似会送给fgets,直接跳过,不接收输入。

这样的问题我应该怎么解决?几天一直没办法解决。
2. C当中有没有库可以做滚屏的?分割屏幕的库?curses可以? 我想把聊天室分上下屏幕,做成上面是在线用户列表,下面是聊天记录,互不影响。
请指教。。

论坛徽章:
0
2 [报告]
发表于 2012-08-23 19:37 |只看该作者
int  main(){

        int  i;
        char buffer[100];
        char send_buffer[1000];
        printf("please input i\n");
        scanf("%d",&i);
        getchar();
        printf("pleadse input the information you want to send\n");
        fgets(buffer,sizeof(buffer),stdin);
//        getchar();
        printf("%d\n",i);
        sprintf(send_buffer,"%d,%s",i,buffer);
        printf("output:%s",send_buffer);
}

论坛徽章:
0
3 [报告]
发表于 2012-08-23 19:50 |只看该作者
你可以做个 输入 who?  的命令  当用户输入这个东西的时候  server  会给用户发送当前在线用户的 列表   并且打印出来
在server 端 你可以 用  strcmp(send_buffer,"who?",4)   当这个成立的时候 你就可以把在线的 用户  发给 客户端   然后客户端 打印出来就好了

论坛徽章:
1
2015亚冠之胡齐斯坦钢铁
日期:2015-05-27 17:00:29
4 [报告]
发表于 2014-07-23 09:12 |只看该作者
膜拜:wink::wink::wink:
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP