您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> C/C++ >> 无法正常输入数据给结构体成员

无法正常输入数据给结构体成员

来源:网络整理     时间:2016/7/5 16:51:15     关键词:

关于网友提出的“ 无法正常输入数据给结构体成员”问题疑问,本网通过在网上对“ 无法正常输入数据给结构体成员”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: 无法正常输入数据给结构体成员
描述:

在学校机房 练程序  写一个学生信息管理的程序,vc++6.0运行一切正常 由于有些东西没完善 跑到网吧继续些。
用tc++3.0
我截取无法执行的那部分如下
在学校用vc++6.0好好的,这死活无法执行
执行后屏幕上就是  
scanf:floating point formats not linked
abnormal program termination
麻烦大家帮忙看下谢谢


#include
#include
#define LENGTH 3
struct student
{
    float score[3];
}stud[LENGTH];
void save(void)
{
    int i,j;
    for(i=0;i<>
    {
        for(j=0;j<>
        {
            scanf("%f",&stud[i].score[j]);  
            printf("\n%.2f",stud[i].score[j]);
        }
    }
}
void main(void)
{
    save();
}

解决方案1:

浮点数模块没有加载,下面是我在网上找的:
--这是tc2.0的scanf函数的一个BUG,编译的时候没有错误,一运行就会出现 
scanf : floating point formats not linked
Abnormal program termination
原因是这样的,过去的计算机资源可不象现在这么丰富,内存动不动就几百兆,以前dos的常规内存只有640k,内存的使用是非常紧张的,因此tc2.0对于不使用浮点的程序,是不加载浮点处理模块的,但是,scanf函数并没有很好地检测用户使用浮点的意图,产生了bug。
解决方法是,在程序中显式地出现浮点运算,但不能仅仅是赋值,例如,在p=(float *)malloc(sizeof(float));后面加一句:*p=cos(0.0);就OK了。虽然这一句是没有任何用处的,但它告诉scanf需要加载浮点模块。

解决方案2:

试试这样:
#include
#include
#define LENGTH 3
struct student
{
    float score[3];
}stud[LENGTH];
void save(void)
{
    int i,j;
    float x=cos(0.0);
    for(i=0;i<>
    {
        for(j=0;j<>
        {
            scanf("%f",&stud[i].score[j]);
            printf("\n%.2f",stud[i].score[j]);
        }
    }
}
void main(void)
{
    save();
}



以上介绍了“ 无法正常输入数据给结构体成员”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2303963.html

相关图片

相关文章