C 语言 编译没问题 运行就不行

来源:百度知道 编辑:UC知道 时间:2024/05/20 06:14:39
#include <stdio.h>
struct book
{
char title[5];
char author[5];
float value;
};
void main()
{
FILE *my_file;
struct book my_lib;
my_file = fopen("book.dat","wb");
gets(my_lib.title);
gets(my_lib.author);
scanf("%f",&my_lib.value);
fwrite(&my_lib, sizeof(struct book), 1, my_file);
fclose(my_file);
}
运行到输入float数字后,老出现
runtime error R6002
- floating point support not loaded

哪里错啦!!
输入数据如下:
qw
we
2.4

然后就跳出来那个错误了~
我用的是visual studio 2005
而且在我校多台机子上试过,都这样

程序没有错误,但不知道楼主运行程序时,如何输入的?请把输入的数据也贴出来看看。

楼主的程序没有任何语法错误,但是运行时错误R6002表示此程序编译链接时未添加浮点支持,也就是说读取浮点值的指令scanf("%f", &my_lib.value);运行失败。这通常的原因是当程序中未使用浮点数值时,链接器自动剔除浮点支持,来减小程序大小。
如果需要运行成功,楼主可以在程序中添加一条包含浮点数值的指令,比如:
float f = 1.0f;
虽然,这条指令无任何实际意义。

在scanf("%f",&my_lib.value); 加个括号变成scanf("%f",&(my_lib.value));