游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3314|回复: 8

在win32编程中,如何实现键盘输入float数据?

[复制链接]

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
发表于 2009-6-20 18:24:00 | 显示全部楼层 |阅读模式
MFC不太懂,所以只好用win32来做。
不过win32如何实现“用键盘输入float类型的数字”呢?

比如,我想用键盘输入 3.1415926 给变量 float data,
有没有办法实现呢?

22

主题

309

帖子

353

积分

中级会员

Rank: 3Rank: 3

积分
353
QQ
发表于 2009-6-20 18:27:00 | 显示全部楼层

Re:在win32编程中,如何实现键盘输入float数据?

有啊

149

主题

4981

帖子

5033

积分

论坛元老

Rank: 8Rank: 8

积分
5033
QQ
发表于 2009-6-20 18:44:00 | 显示全部楼层

Re:在win32编程中,如何实现键盘输入float数据?

如果你是通过控制台读取……

  1. float data= 0;
  2. cin >> data;
复制代码

9

主题

249

帖子

260

积分

中级会员

Rank: 3Rank: 3

积分
260
发表于 2009-6-20 19:20:00 | 显示全部楼层

Re:在win32编程中,如何实现键盘输入float数据?

win32界面中的edit box窗口输入
或者弹出console windows进行输入

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
 楼主| 发表于 2009-6-20 21:01:00 | 显示全部楼层

Re: Re:在win32编程中,如何实现键盘输入float数据?

bskk: Re:在win32编程中,如何实现键盘输入float数据?
win32界面中的edit box窗口输入
或者弹出console windows进行输入

怎么开出来呢?
是stdio.h里的吗?
用什么命令开出来呢?

9

主题

249

帖子

260

积分

中级会员

Rank: 3Rank: 3

积分
260
发表于 2009-6-20 21:41:00 | 显示全部楼层

Re:在win32编程中,如何实现键盘输入float数据?

The AllocConsole function allocates a new console for the calling process.


BOOL AllocConsole(void);

网上搜个现成例子看看就知道了

3

主题

32

帖子

36

积分

注册会员

Rank: 2

积分
36
发表于 2009-6-24 09:56:00 | 显示全部楼层

Re:在win32编程中,如何实现键盘输入float数据?

这个可以吗

#include <io.h>
#include <fcntl.h>
#include <stdio.h>

void create_console()
{
        int h_con_handle;
        long l_std_handle;
       
        CONSOLE_SCREEN_BUFFER_INFO coninfo;
        FILE *fp;
       
        // allocate a console for this app
        AllocConsole();
       
        // set the screen buffer to be big enough to let us scroll text
        GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &coninfo);
        coninfo.dwSize.Y = 500;
        SetConsoleScreenBufferSize(GetStdHandle(STD_OUTPUT_HANDLE), coninfo.dwSize);
       
        // redirect unbuffered STDOUT to the console
        l_std_handle = (long)GetStdHandle(STD_OUTPUT_HANDLE);
        h_con_handle = _open_osfhandle(l_std_handle, _O_TEXT);
        fp = _fdopen( h_con_handle, "w" );
        *stdout = *fp;
        setvbuf( stdout, NULL, _IONBF, 0 );
       
        // redirect unbuffered STDIN to the console
        l_std_handle = (long)GetStdHandle(STD_INPUT_HANDLE);
        h_con_handle = _open_osfhandle(l_std_handle, _O_TEXT);
        fp = _fdopen( h_con_handle, "r" );
        *stdin = *fp;
        setvbuf( stdin, NULL, _IONBF, 0 );
       
        // redirect unbuffered STDERR to the console
        l_std_handle = (long)GetStdHandle(STD_ERROR_HANDLE);
        h_con_handle = _open_osfhandle(l_std_handle, _O_TEXT);
        fp = _fdopen( h_con_handle, "w" );
        *stderr = *fp;
        setvbuf( stderr, NULL, _IONBF, 0 );
}

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
 楼主| 发表于 2009-6-24 13:33:00 | 显示全部楼层

Re:在win32编程中,如何实现键盘输入float数据?

谢谢zgpGame,我试试看。谢谢!

7

主题

78

帖子

82

积分

注册会员

Rank: 2

积分
82
发表于 2009-6-24 18:30:00 | 显示全部楼层

Re:在win32编程中,如何实现键盘输入float数据?

在你决定输入前,监控键盘消息
1、记录按下的键所对应的数字,这个是整数部分
2、监控“.”的输入
3、倘若监控到输入了“.”,则之后的键盘消息为小数部分。比如输入了n个数字,则小数部分为“输入的数字/(10^n)”
可能需要用到atoi。
以上
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-19 21:54

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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