mfc中可编辑文本框要输入的必须是浮点数(0.2555和532e-9这两种形式),如果不是,在下一步操作的时候给出提示。
1、我把文本框的输入设置为float,还是有个问题,那就是如果输入不是浮点数,会给出提示,但是提示后直接报错退出程序。这个有没有什么方法可以让他报错后给出警告但不退出的。
2、我在网上找了个判断浮点数的例子,单独运行的时候两种形式都可以判断,但是我把他放到mfc中的时候就不能判断科学计数法表示的浮点数了
那个代码是这个:#include <stdio.h>
#include <string.h>
#include <ctype.h>int chk(char st[])
{
int point=0,i,len;
if (st[0]!='+'&&st[0]!='-'&&!isdigit(st[0])) {
return 0;
}
len=strlen(st);
for (i = 1; i<len; ++i) {
if (!isdigit(st[i])&&st[i]!='.') {
return 0;
}
if (st[i]=='.') {
++point;
if (point>1) {
return 0;
}
} }
return 1;
}
int main(void)
{
char st[80];
scanf("%*[ ]%79s",st);
printf("%s",chk(st)?"YES":"NO");
return 0;
}
1、我把文本框的输入设置为float,还是有个问题,那就是如果输入不是浮点数,会给出提示,但是提示后直接报错退出程序。这个有没有什么方法可以让他报错后给出警告但不退出的。
2、我在网上找了个判断浮点数的例子,单独运行的时候两种形式都可以判断,但是我把他放到mfc中的时候就不能判断科学计数法表示的浮点数了
那个代码是这个:#include <stdio.h>
#include <string.h>
#include <ctype.h>int chk(char st[])
{
int point=0,i,len;
if (st[0]!='+'&&st[0]!='-'&&!isdigit(st[0])) {
return 0;
}
len=strlen(st);
for (i = 1; i<len; ++i) {
if (!isdigit(st[i])&&st[i]!='.') {
return 0;
}
if (st[i]=='.') {
++point;
if (point>1) {
return 0;
}
} }
return 1;
}
int main(void)
{
char st[80];
scanf("%*[ ]%79s",st);
printf("%s",chk(st)?"YES":"NO");
return 0;
}
解决方案 »
- 请教各位大侠:如何使卸载的快捷方式不出现在最常用的文件列表中?,但开始菜单中要有卸载的快捷方式。
- 如何判断串口是否被打开?
- 未知窗口的闪烁问题
- XP如何在进入BOIS后的DOS界面启动自己的应用程序,然后再进入系统(急啊)
- 模拟按键问题搞死我了
- MFC里的CMap的4个参数各代表什么?(Google过了 没得到满意的答案)
- 关于Windows MediaPlayer控件的版本 和 控件中控制函数的问题
- 请教:如何在sdk程序中使用Intel JPEG Library?
- CFile问题
- vs2008左边可以看源文件,头文件的结构怎么看不见了,怎么显示出来
- GDI+放大图片边缘透明
- 如何给另存为对话框设置文件名并自动保存??
这个函数有返回值