Chinaunix

标题: scanf fgets C库分割界面 聊天室 [打印本页]

作者: 恰巧来上    时间: 2012-08-22 21:23
标题: scanf fgets C库分割界面 聊天室
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可以? 我想把聊天室分上下屏幕,做成上面是在线用户列表,下面是聊天记录,互不影响。
请指教。。
作者: longzmkm    时间: 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);
}
作者: longzmkm    时间: 2012-08-23 19:50
你可以做个 输入 who?  的命令  当用户输入这个东西的时候  server  会给用户发送当前在线用户的 列表   并且打印出来
在server 端 你可以 用  strcmp(send_buffer,"who?",4)   当这个成立的时候 你就可以把在线的 用户  发给 客户端   然后客户端 打印出来就好了
作者: 快乐古月    时间: 2014-07-23 09:12
膜拜:wink::wink::wink:




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2