你这个是打开文件失败了!最好是在打开文件的时候加一个判断来看看是否文件打开成功!fin=fopen("2.txt","r")注意你的2.txt文件必须和你编译好的C可执行文件在同一目录下,当然你也可以指定特定的目录,我这个例子就是指定的G盘的根目录!最后给你一句忠告,要学会调试简单的程序,好多问题一调试后就...
但这个4个字节本应该是放在两个结构体中的,当然会读错。了解下结构体的内存分配,你就知道为什么不能...
虽然不知道你文件数据的格式,不过你可以把 fscanf(fp1,"%f,%f,%f,%f\n",&p[i].x1,&p[i].x2,&p[i].x3,&p[i].x4);改成这样fscanf(fp1,"%lf%lf%lf%lf\n",&p[i].x1,&p[i].x2,&p[i].x3,&p[i].x4);或者这样 fscanf(fp1,"%lf,%lf,%lf,%lf\n",&p[i].x1,&p...
int main(){ //两个参数,"打开的文件名","读取"FILE* file = fopen("numbers.txt","r");int a;if ( file==NULL ) //加上这个检查,你就可以确定是不是文件成功打开了。{ printf("open file error\n" );return -1;} //从文件中读出一个数字赋值给a fscanf(file,"%d",&a);pri...
fscanf的返回值表示成功读取的参数个数,楼主这么用,应该是6个参数, 那个while语句不成立直接退出了吧
读取到的这些整型数,在内存中以二进制形式保存,对应的浮点型如果是零点几,就会被打印成0。可以去看看浮点数和整型数在内存中是以什么形式保存的。有了浮点型存储的知识就能懂了:你的指数位保存的数还要偏移127,所以造成了整个浮点数变得很小,比1小(但还是正数),而%-15.f这种格式不打印小数位...
r+不会清空,只是会覆盖原来的字符,,比如原来文件里面有 abcdef 六个字符 然后你写入xyz 文件里面就被更新成xyzdef。如果你写入完了需要再读取,那就需要调用rewind(P);把光标移动到开头才能读取成功。
再用两个for循环对数组整体进行排序 而且fscanf读入数组每个数的地址要用 &a[i] 或 a+i,a代表&a[0],所以用&a是不对的 修改后的代码和运行结果如下:代码中先将测试数据写入文件,再对文件进行读取和排序,输出结果正确,望采纳~附源码链接:文件读取并排序 ...