在利用fprintf函数将数据按格式输出到文件中时,通常需要限定数据的格式,例如:

FILE *f=fopen("d:\\1.txt","w+");
int a =20;
float b = 3.006544;
double c = 6.2154857;
fprintf(f,"%6d%c",a,',');
fprintf(f,"%2.6f%c",b,',');
fprintf(f,"%2.6lf%c",b,'\n');

fclose(f);

但是在利用fscanf等函数进行文件读取时,并不需要再加这些数字限定,直接读取即可。对应float和double类型的数据,如果仍加数字限定,进行读取时会无法正确读取数据;但是对于int型数据,即便加上这些数字限定(实际上完全没有必要加),仍然会得到准确数据。

FILE *f=fopen("d:\\1.txt","r");
int a =0;
float b = 0;
double c = 0;
char temp;
fscanf(f,"%6d",&a);//可以得到准确数据
fscanf(f,"%c",&temp);
fscanf(f,"%2.6f",&b');//读取数据错误
fscanf(f,"%c",&temp);
fscanf(f,"%2.6lf",&b,);//读取数据出错
fscanf(f,"%c",&temp);
fclose(f);

因此,推荐的数据读取的方式为:

FILE *f=fopen("d:\\1.txt","r");
int a =0;
float b = 0;
double c = 0;
char temp;
fscanf(f,"%d",&a);//可以得到准确数据
fscanf(f,"%c",&temp);
fscanf(f,"%f",&b');//可以得到准确数据
fscanf(f,"%c",&temp);
fscanf(f,"%lf",&b,);//可以得到准确数据
fscanf(f,"%c",&temp);
fclose(f);

fprintf, fscanf,printf,scanf使用时参数注意的更多相关文章

  1. html-webpack-plugin插件使用时参数配置

    ERROR in multi main Module not found: Error: Cannot resolve 'file' or 'directory' ./public/pages/ind ...

  2. Saiku嵌入系统使用时传参数访问saiku(十六)

    Saiku嵌入系统使用时传参数访问saiku Saiku通过iframe嵌入其他系统使用时,我们可以设定参数信息,然后根据url中参数对结果进行筛选哦. 这里我们实现的是根据日期字段进行范围查询,UR ...

  3. linux下使用fscanf实现scanf

    首先,我们知道,linux下的scanf标准库函数是一个可变参的函数,那么,我们自己要实现一个scanf也必须是一个可变参的. 其实,在liunx的库中就提供了这样的的宏,来方便我们自己来实现变参函数 ...

  4. 由fprintf和printf看C语言三种标准流

    一.C语言中的三种标准流 1.标准输入流:stdin 2.标准输出流:stdout 3.标准错误输出流:stderr 他们的类型都是File * 二.fprintf于printf的区别 frintf( ...

  5. free函数使用时的注意事项。

    free函数是我们在写C语言程序时常用的函数,但是使用时需要注意,一不小心很肯能会引起吐核. 注意:free函数与malloc()函数配对使用,malloc函数释放申请的动态内存.对于free(p)这 ...

  6. 4-printf & scanf函数

    一.printf函数 这是(printf和scanf)在stdio.h中声明的一个函数,因此使用前必须加入#include <stdio.h> 1.用法 1> printf(字符串) ...

  7. EntityFrameWork 使用时碰到的小问题

    EntityFrameWork 使用时碰到的小问题 1,在使用orm访问数据库的相目里,也要引用EntityFrameWork.dll,否则无法使用orm 否则,编译错误 错误 5 "Sys ...

  8. Saiku多用户使用时数据同步刷新(十七)

    Saiku多用户使用时数据同步刷新 这里我们需要了解一下关于saiku的刷新主要有两种数据需要刷新: >1 刷新数据库的表中的数据,得到最新的表数据进行展示. >2 刷新cube信息,得到 ...

  9. Java 中无返回值的方法在使用时应该注意的问题

    Java 中的方法是形态多样的.无返回值的方法在使用时应该规避哪些问题呢? 一.不可以打印调用或是赋值调用,只能是单独调用(非常重要): 二.返回值没有,不代表参数就没有: 三.不能return一个具 ...

随机推荐

  1. MongoDB 数据库管理(不定时更新)

    之前的几篇文章大致说了副本集的搭建.副本集的管理,现在说下MongoDB数据库的管理.数据库管理包括:备份.还原.导入.导出.服务器管理等. 一:查看服务器状态,查看命令行参数.db.serverSt ...

  2. Make My GitHub Pages

    https://git-scm.com/ https://pages.github.com/ 1.建立repository. 2.settings 3.选模板 4.Publish http://use ...

  3. 如何让ListView的item不可点击

    原文链接:http://blog.csdn.net/zhangfei_jiayou/article/details/6972752 1. 如果是listView的id是使用系统默认的id,如下, 则可 ...

  4. vps mysql自动关闭

    买了个阿里云的vps 装了一个wordpress,mysql一直自动关闭,百思不得其解,只有搜索 最后才发现是因为服务器内存太小,毕竟是最便宜的才512m ---------------------- ...

  5. Effective C++ -----条款22:将成员变量声明为private

    切记将成员变量声明为private.这可赋予客户访问数据的一致性.可细微划分访问控制.允诺约束条件获得保证,并提供class作者以充分的实现弹性. protected并不比public更具有封装性.

  6. Javascript调用C#后台方法及JSon解析

    Javascript调用C#后台方法及JSon解析   如何使用Ajax 调用C# 后台方法. 本文目录 如何使用Ajax 调用C# 后台方法. 1.后台(.cs)测试方法 2.前台调用(javasc ...

  7. ASP.NET SignalR 与 LayIM2.0 配合轻松实现Web聊天室(十) 之 自定义系统消息和总结

    前言 本篇主要讲解一个东西,就是我们自定义系统消息.效果如下: 首先我们要做的准备工作就是改写 layim 的消息模板,如果不改的话就成为某个用户发送的消息了,那么体验就稍微差一些.找到模板我们看一下 ...

  8. debug与release

    因为在Debug中有ASSERT断言保护,所以要崩溃,而在Release优化中就会删掉ASSERT,所以会出现正常运行. void func() {    char b[2]={0};    strc ...

  9. redis配置详情

    # Redis configuration file example # Note on units: when memory size is needed, it is possible to sp ...

  10. NYOJ题目817英文藏头诗

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAtEAAAKXCAIAAADLqoEhAAAgAElEQVR4nO3dO1LrzNbG8W8S5AyE2D