邪门了,VC里scanf问题, 会者不难!

jruv 2005-05-12 12:00:13
#include "stdafx.h"
#include<stdio.h>

int main()
{
float a;
scanf("%f", &a);
return 0;
}
就这么个简单的程序竟然会报runtime error!错误, 有没有人遇到这种情况阿? 并且有时候是好的不过机会很小。诚心请教!谢谢!
...全文
248 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
jruv 2005-05-12
  • 打赏
  • 举报
回复
哦, 上面abcabc999已经说了,没看见,呵呵
2、printf 或 scanf 函数的格式字符串包含浮点格式规范,而该程序不包含任何浮点值或变量。
还有这个规定的, 长见识了,谢谢!
jruv 2005-05-12
  • 打赏
  • 举报
回复
to abcabc999, oyljerry
两位高见, 的确, 先赋值一下就可以了, 但为什么呢,VC6连这个简单的程序都编不过? TC下就没有这个问题.
alaisalaix 2005-05-12
  • 打赏
  • 举报
回复
奇怪的错误
如果连hello world级别的程序都出错的话,那肯定是编译环境出错了
qrlvls 2005-05-12
  • 打赏
  • 举报
回复
没有问题,你试试rebuild all后直接执行编译后的应用程序而不通过IDE环境来执行看看有没有错误
oyljerry 2005-05-12
  • 打赏
  • 举报
回复
嗯,浮点数,先赋值一下
abcabc999 2005-05-12
  • 打赏
  • 举报
回复
msdn中的解释:

未加载浮点支持

未链接必需的浮点库。

可能的原因

1、该程序通过选项(如 /FPi87,该选项要求有协处理器)被编译或链接,但该程序运行在一台未安装协处理器的计算机上。
2、printf 或 scanf 函数的格式字符串包含浮点格式规范,而该程序不包含任何浮点值或变量。
3、编译器仅当必要时才通过加载浮点支持以最小化程序大小。编译器无法检测到格式字符串中的浮点格式规范,因此编译器未加载必要的浮点例程。
4、使用浮点参数以符合浮点格式规范,或在程序的其他地方执行浮点赋值。该操作将导致加载浮点支持。
5、在由混合语言编写的程序中,当程序进行链接时在 FORTRAN 库之前指定了 C 库。重新链接并最后指定 C 库。
abcabc999 2005-05-12
  • 打赏
  • 举报
回复
vc6么,以前帖子讨论过
float a =0.0f;
则没有错误。
handwolf 2005-05-12
  • 打赏
  • 举报
回复
无错,是你机器上的环境问题!
gzl 2005-05-12
  • 打赏
  • 举报
回复
系统编译器有问题。
jerry 2005-05-12
  • 打赏
  • 举报
回复
严重关注~!
CodeProject-Jerry 2005-05-12
  • 打赏
  • 举报
回复
同感
hushuangyan74 2005-05-12
  • 打赏
  • 举报
回复
你这个程序是没有错误的,是不是你的VC或者设置有问题!
lingzantia 2005-05-12
  • 打赏
  • 举报
回复
run-time error
An error in a script that occurs when a command attempts to perform an action that is not valid. For example, a run-time error occurs if you try to perform a calculation using a variable that has not been initialized. If a run-time error occurs, the script either stops or performs an exception routine.

lingzantia 2005-05-12
  • 打赏
  • 举报
回复
应该是编译器的安全措施,你输入a后未经任何处理,占用了资源,你在后面加上printf("%f",a);试试。

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧