在利用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. Ubuntu 新建swap分区及启用

    个人电脑配置:500G机械硬盘+16G NGFF SSD+8G Physical Memory 之前安装Ubuntu16.04,默认装到NGFF的SSD里,/和swap分区一共才16G,于是删除swa ...

  2. 4.openstack之mitaka搭建glance镜像服务

    部署镜像服务 一:安装和配置服务 1.建库建用户 mysql -u root -p CREATE DATABASE glance; GRANT ALL PRIVILEGES ON glance.* T ...

  3. a byte of python(摘04)

    a byte of python 第十章 输入/输出 如何使程序和用户进行交互?(用 raw_input 和 print语句来完成) 对于输出,你也可以使用多种多样的 str(字符串)类.使用 rju ...

  4. DropDownList如何添加一个空白的选项

    ddl_class.Items.Insert(0,new ListItem("",""));

  5. 让项目同时支持ARC和非ARC

    ttp://code4app.com/snippets/one/禁止某几个文件用ARC模式编译/502344256803fa246d000000#s0 如果你的绝大部分代码需要ARC,那么就设置项目支 ...

  6. cf378D(stl模拟)

    题目链接:http://codeforces.com/contest/733/problem/D 用map<pair<int, int>int>标记(第一次用~)... 代码: ...

  7. CSDN-markdown编辑器

    欢迎使用Markdown编辑器写博客 本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接 ...

  8. python字符串中插入变量

  9. cache buffers

    buffers缓冲,可以型象的理解为漏斗.如果有大量的数据要写入磁盘,由于数据量很大,磁盘不能一下子接收,所以这个时候,就有了buffer这个漏斗,先把数据放入这个漏斗里面,然后让它慢慢的注入磁盘,这 ...

  10. Delphi 的知识体系

    第一部分   快速开发的基础 第1章   Delphi 5下的Windows编程    1 1.1   Delphi产品家族    1 1.2  Delphi是什么    3 1.2.1   可视化开 ...