hur.cn - 华软网

 热门搜索

能不能重定向控制台标准句柄实现这样一个功能?

  作者:未知    来源:网络    更新时间:2011/5/31
用scanf输入字符得到时候,每按一个按键就会在屏幕上显示一个字符,现在要求写一个控制台程序,用户从键盘输入字符,程序先对输入的字符做检查,如果符合预定的标准则显示在屏幕上,否则不显示。

关于控制台的标准句柄一直不是很清楚
1:在没有重定向标准句柄的情况下,所谓的标准输入句柄就是键盘的输入码?标注输出句柄就是屏幕缓冲区吗?
2:通过SetStdHandle 重定向了标准句柄之后,再GetStdHandle获得的句柄是原来的句柄还是SetStdHandle 传入的句柄?
3:用过CreateConsoleScreenBuffer和SetConsoleScreenBuffer修改了屏幕缓冲区之后std_out也变了吗?
4:用scanf getchar cin getline等函数输入字符,printf cout 等函数输入字符的时候是从什么地方读取或者是向什么地方输出?直接从键盘上读取还是从那个标准句柄中读取?
---华软 网友回答---
_getch()
---华软网友回复---
在相关学习资料上有,_getch()
---华软网友回复---
“现在要求写一个控制台程序,用户从键盘输入字符,程序先对输入的字符做检查,如果符合预定的标准则显示在屏幕上,否则不显示。”只是这么一个功能的话,那根本就不需要什么句柄,也没你想的那么麻烦。

直接建一个string变量,存取输入(cin),然后用if比对,然后再输出(cout)就可以了。



---华软网友回复---
引用 3 楼 ladingwen3 的回复:
“现在要求写一个控制台程序,用户从键盘输入字符,程序先对输入的字符做检查,如果符合预定的标准则显示在屏幕上,否则不显示。”只是这么一个功能的话,那根本就不需要什么句柄,也没你想的那么麻烦。

直接建一个string变量,存取输入(cin),然后用if比对,然后再输出(cout)就可以了。

你们都还没理解我的意思啊!!
如果
char str[];
cin>>str;
cout>>str;


这样你执行到cin>>str;时,你在屏幕上输入字符串的时候屏幕上会有显示,cout输出时又会打印一遍,我要的效果是你在输入的时候屏幕上不显示,但是确实将输入的内容赋给了str变量!明白吗?
---华软网友回复---
你们谁能给我简单解释下我提出的四个问题就OK了!
---华软网友回复---
引用 4 楼 career2011 的回复:
引用 3 楼 ladingwen3 的回复:

“现在要求写一个控制台程序,用户从键盘输入字符,程序先对输入的字符做检查,如果符合预定的标准则显示在屏幕上,否则不显示。”只是这么一个功能的话,那根本就不需要什么句柄,也没你想的那么麻烦。

直接建一个string变量,存取输入(cin),然后用if比对,然后再输出(cout)就可以了。

你们都还没理解我的意思啊!!
如果
char……


感觉没这个必要吧。你究竟是想拿来做什么东西?

如果要那样,你就自己去分解cin吧。看看它的具体实现,然后修改出一个。


---华软网友回复---
你们还是直接回答我提出的问题吧。。。。。晕啊。。。      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。