最好不要用 scanf,我的感觉是我从来没用过这个函数,只有教学中为了简便输入才用。#include <conio.h>
#include <stdlib.h>int GetString(char* buf, int size)
{
int i;
int c; for(i = 0; i < size - 1; i++)
{
c = _getche();
if(c == '\r')
break;
buf[i] = c;
}
buf[i] = 0; return i;
}int main(int argc, char* argv[])
{
char buf[80];
double val;
char *pchar; GetString(buf, 80);
cputs("\r\n");
val = strtod(buf, &pchar);
if(*pchar)
cputs("Not a number!\r\n");
else
cprintf("%f\r\n", val); return 0;
}
#include <stdlib.h>int GetString(char* buf, int size)
{
int i;
int c; for(i = 0; i < size - 1; i++)
{
c = _getche();
if(c == '\r')
break;
buf[i] = c;
}
buf[i] = 0; return i;
}int main(int argc, char* argv[])
{
char buf[80];
double val;
char *pchar; GetString(buf, 80);
cputs("\r\n");
val = strtod(buf, &pchar);
if(*pchar)
cputs("Not a number!\r\n");
else
cprintf("%f\r\n", val); return 0;
}
解决方案 »
- afx_msg BOOL OnEraseBkgnd(CDC* pDC);//return 1,怎么对话框的背景不是黑色的?
- 100分问一个很简单的问题.关于sqlite
- 程序员电脑配置请大家推荐?
- 怎样读出内存里的数据?
- 诚心寻求帮助:关于逻辑坐标与设备坐标的转换的问题,请高手指点!
- webbrowser不响应键盘和回车消息
- 关于ShockWaveFlash控件的奇怪问题
- 已知一个用OpenProcess得到的HANDLE,如何通过这个HANDLE得到它所属窗口的句柄HWND?
- 熟悉VC开发平台要多长时间?
- 关于com编译问题
- winsocket
- 如何在View类以外获得Doc类的指针?(内空)
{ int z;
double ka[9]={0,0,0,0,0,0,0,0,0},tmp; for (z=1;z<=6;++z)
{
loop0:printf("\n请输入第%d个数值( 0 结束输入):",z);
int nret=scanf("%lf",&tmp);
if(nret==0)
getchar();
if (tmp==0) break;
if (tmp<1e-37||tmp>1) goto loop0;
ka[z]=tmp;
} return 0;
}
#include <windows.h>
#include <stdio.h>
void main()
{
int z;
double ka[9]={0,0,0,0,0,0,0,0,0},tmp;
char input[80];
for (z=1;z<=6;z++)
{
loop0: printf("\n请输入第%d个数值( 0 结束输入):",z);
scanf("%s",input); //加此句保证不一下循环完
sscanf(input,"%lf",&tmp);
if (tmp==0) break;
if (tmp<1e-37||tmp> 1e37)goto loop0; //由tmp>1改为1e37,是否此句导致无限循环
ka[z]=tmp;
}
}如输入“345fgfg”,则得345,
输入“jhjh”,则得上次同一数