佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1188|回复: 10

有没有方法写出这样的code???

[复制链接]
发表于 6-10-2007 02:44 PM | 显示全部楼层 |阅读模式
小弟有个疑问,好像我们要吧C++里的input变成×号可以的吗????就是把input的数目字display成×号,例如我打1234,display就会出××××。紧急哦。谢谢各位大大
回复

使用道具 举报


ADVERTISEMENT

发表于 6-10-2007 10:18 PM | 显示全部楼层
main(c)
{
        for (;(c=getch())&&c!=13;write(1,"x",1));
}
回复

使用道具 举报

 楼主| 发表于 8-10-2007 08:53 AM | 显示全部楼层
原帖由 tensaix2j 于 6-10-2007 10:18 PM 发表
main(c)
{
        for (;(c=getch())&&c!=13;write(1,"x",1));
}


这位大大,我想问一下,你贴上去的code是用什么compiler的??我用borland的。我想知道上面的code到底说什么??大大可以解释吗???
回复

使用道具 举报

发表于 8-10-2007 09:55 AM | 显示全部楼层
generic C compiler.

先来解释什么是getch..

getch 跟一般开input stream (例如,getchar,cin, scanf, fread,..有点不同就是。。当第一个input收到后,input stream就关掉了

若你用 getchar 的话, input stream 会一直开着。。直到enter 被按下去。。。
倘若你用 int x= getchar(),input stream开了后,你输入5 个inputs,第一个会被assign 到x, 其它四个会留在stdin..
如果,stdin,没有被flush 的话,那么。。下次在遇到getchar,或cin或scanf时,他会直接取input从stdin...

那write 是什么呢? write 顾名思义是[写]的意思
你可以写到
stdin   -- 3
stderr  -- 2
stdout  -- 1

stdout 跟 stderr的差别就在。。
stdout 有个 buffer...若你做piping就可以清楚的看到,program没结束的话,你pipe去哪里都不会拿到output.
stderr,是没buffer的。。。output是直接被输送的。。

就这样。。
回复

使用道具 举报

 楼主| 发表于 11-10-2007 09:47 AM | 显示全部楼层

回复 #4 tensaix2j 的帖子

这位大大,如果我必须用borland的话,write没有这个function的吗???我是初学者,很多都不懂也,还是很模糊。
回复

使用道具 举报

发表于 11-10-2007 10:31 AM | 显示全部楼层
原帖由 stephen0606 于 11-10-2007 09:47 AM 发表这位大大,如果我必须用borland的话,write没有这个function的吗???我是初学者,很多都不懂也,还是很模糊。  


write是 standard的but是比较low level的写法。

新手用cout 或printf好了。。
example:

cout << "x" ;
printf("x");

but 最好不要参着来写。

int main()
{
         char c;
         do            
         {
                c=getch();      
                printf("x");
         }
         while (c!=13);
        
        return 0;
}
回复

使用道具 举报

Follow Us
 楼主| 发表于 11-10-2007 11:47 AM | 显示全部楼层
原帖由 tensaix2j 于 11-10-2007 10:31 AM 发表


int main()
{
         char c;
         do            
         {
                c=getch();      
                printf("x";
         }
         while (c!=13);
        
        return 0;
}


能了!!感谢大大。但有些疑问,为什么我们要放c不等于13???还有,我们能不能declare c是int??一定要char?? 小弟疑问多多,希望大大不要见怪。
回复

使用道具 举报

发表于 11-10-2007 12:11 PM | 显示全部楼层
原帖由 stephen0606 于 11-10-2007 11:47 AM 发表
为什么我们要放c不等于13???还有,我们能不能declare c是int??一定要char?? 小弟疑问多多,希望大大不要见怪。


13是carriage return的意思。也就是按enter 的值。
注:跟\n不一样。 \n 是 10,line feed

请参考ascii table.

可以declare as integer. but 没有必要。
因为,没用到那么大的容量。
你可以按的ascii 没那么多。。1 byte (256) 就够了。。

注:
char 是 1 byte
int  是 4 bytes
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 11-10-2007 12:17 PM | 显示全部楼层

回复 #8 tensaix2j 的帖子

那不就每个key都能打??spacebar也算一个字吗?? 如果要放condition的话可以的吗??好像限制只是号码还是什么的。都放在loop里吗??
回复

使用道具 举报

发表于 11-10-2007 06:41 PM | 显示全部楼层
加一点思考。。
加一点参考。。
programming难不倒。。
回复

使用道具 举报

 楼主| 发表于 11-10-2007 08:37 PM | 显示全部楼层

回复 #10 tensaix2j 的帖子

哦,真的非常感谢你啊!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 9-10-2025 08:18 AM , Processed in 0.137333 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表