免费注册 查看新帖 |

Chinaunix

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

[C] 想问个关于修改缓冲区内容的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-01-01 13:32 |只看该作者 |倒序浏览
5可用积分
这个问题问完,可能各位高手得笑话我, 也许就是完全没有可能解决的问题.   我昨天自己编个小程序, 就是用管道实现的2人聊天室, 开两个终端那样的, 涉及到个问题,  我想修改已经存进缓冲区里的内容...   就是我现在 在屏幕上 输入 abc  然后按回车的时候 我想在我这个终端上显示
name :   abc     我用fgets(buf, sizeof(buf), stdin); 输入的,   然后sprintf(...) 实现的把name:   加在了输入内容之前,   但是现在问题就出现了 输出的时候 屏幕上显示  abc  然后再显示  name:  abc    我不想要前面那个abc   怎么才能实现啊?   现在是这个效果
abc
name: abc
nihao
name: nihao
hehe
name: hehe

我想要这样的效果
name: abc
name: nihao
name: hehe

不知道各位高人有没有办法??

最佳答案

查看完整内容

我明白LZ的意思LZ是不是想要这种运行效果![ 本帖最后由 anthony1983 于 2008-1-1 21:10 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2008-01-01 13:32 |只看该作者
我明白LZ的意思
LZ是不是想要这种运行效果!
int main()
{
        int k = 0;
        system("stty   -echo");
        scanf("%d", &k);
        printf("%d\n",k);
        system("stty   echo");
}


[ 本帖最后由 anthony1983 于 2008-1-1 21:10 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2008-01-01 17:54 |只看该作者
你先输出 name: ,然后再读入,然后不输出,不就是你想要的效果吗?

论坛徽章:
0
4 [报告]
发表于 2008-01-01 18:35 |只看该作者
语言表达太差劲, 半天听不懂想要说什么。

论坛徽章:
0
5 [报告]
发表于 2008-01-01 20:45 |只看该作者
我本身表达能力也不强, 还是谢谢楼上的你能读完我的帖子!我就是想实现聊天室里显示的那样的效果, win_hate说的我试过,提前先输出name :  但是如果对方 发过来消息的话  直接显示在  "name: "之后了.
代码如下

     fgets(wbuf, sizeof(wbuf), stdin);              //从键盘获得输入
        sprintf(totbuf, "name: %s", wbuf);   // 连接自己的名字+输入内容
        fputs(totbuf, wfiled);                         //把名字+内容 显示到屏幕上

现在出现的问题是 我输入abc的话   显示如下:
abc
name: abc
我想实现就输出  name: abc

win_hate说的那样,我之前试过,先输出name: 但是如果这时候对方发来消息,  直接显示到这个name之后了,变成:
name: 他的名字+他说话的内容   
所以name:还不能提前输出

论坛徽章:
0
6 [报告]
发表于 2008-01-01 22:03 |只看该作者
原帖由 anthony1983 于 2008-1-1 20:56 发表
我明白LZ的意思
LZ是不是想要这种运行效果!
int main()
{
        int k = 0;
        system("stty   -ec ...


哈哈 多谢了!正是这个效果,  不过自己打字的过程中,看不见自己的输入内容了啊? 跟输入密码似的,  只能回车之后才能看见了??  怎么解决啊???

论坛徽章:
0
7 [报告]
发表于 2008-01-01 22:07 |只看该作者
完了  还没解决利索呢 我就给点已解决了

[ 本帖最后由 暗底 于 2008-1-1 22:25 编辑 ]

论坛徽章:
0
8 [报告]
发表于 2008-01-02 08:22 |只看该作者
帖代码

论坛徽章:
0
9 [报告]
发表于 2008-01-02 08:34 |只看该作者
事实上是很难做到这样的交互的,除非用停等。

比如步话机, 一方说完,必须说句“over”,然后另一方才能说话。
否则必须用两个界面才能做到,聊天室也是用的两个控件做的吧~
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP