fprintf, fscanf,printf,scanf使用时参数注意
在利用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使用时参数注意的更多相关文章
- html-webpack-plugin插件使用时参数配置
ERROR in multi main Module not found: Error: Cannot resolve 'file' or 'directory' ./public/pages/ind ...
- Saiku嵌入系统使用时传参数访问saiku(十六)
Saiku嵌入系统使用时传参数访问saiku Saiku通过iframe嵌入其他系统使用时,我们可以设定参数信息,然后根据url中参数对结果进行筛选哦. 这里我们实现的是根据日期字段进行范围查询,UR ...
- linux下使用fscanf实现scanf
首先,我们知道,linux下的scanf标准库函数是一个可变参的函数,那么,我们自己要实现一个scanf也必须是一个可变参的. 其实,在liunx的库中就提供了这样的的宏,来方便我们自己来实现变参函数 ...
- 由fprintf和printf看C语言三种标准流
一.C语言中的三种标准流 1.标准输入流:stdin 2.标准输出流:stdout 3.标准错误输出流:stderr 他们的类型都是File * 二.fprintf于printf的区别 frintf( ...
- free函数使用时的注意事项。
free函数是我们在写C语言程序时常用的函数,但是使用时需要注意,一不小心很肯能会引起吐核. 注意:free函数与malloc()函数配对使用,malloc函数释放申请的动态内存.对于free(p)这 ...
- 4-printf & scanf函数
一.printf函数 这是(printf和scanf)在stdio.h中声明的一个函数,因此使用前必须加入#include <stdio.h> 1.用法 1> printf(字符串) ...
- EntityFrameWork 使用时碰到的小问题
EntityFrameWork 使用时碰到的小问题 1,在使用orm访问数据库的相目里,也要引用EntityFrameWork.dll,否则无法使用orm 否则,编译错误 错误 5 "Sys ...
- Saiku多用户使用时数据同步刷新(十七)
Saiku多用户使用时数据同步刷新 这里我们需要了解一下关于saiku的刷新主要有两种数据需要刷新: >1 刷新数据库的表中的数据,得到最新的表数据进行展示. >2 刷新cube信息,得到 ...
- Java 中无返回值的方法在使用时应该注意的问题
Java 中的方法是形态多样的.无返回值的方法在使用时应该规避哪些问题呢? 一.不可以打印调用或是赋值调用,只能是单独调用(非常重要): 二.返回值没有,不代表参数就没有: 三.不能return一个具 ...
随机推荐
- MongoDB 数据库管理(不定时更新)
之前的几篇文章大致说了副本集的搭建.副本集的管理,现在说下MongoDB数据库的管理.数据库管理包括:备份.还原.导入.导出.服务器管理等. 一:查看服务器状态,查看命令行参数.db.serverSt ...
- Make My GitHub Pages
https://git-scm.com/ https://pages.github.com/ 1.建立repository. 2.settings 3.选模板 4.Publish http://use ...
- 如何让ListView的item不可点击
原文链接:http://blog.csdn.net/zhangfei_jiayou/article/details/6972752 1. 如果是listView的id是使用系统默认的id,如下, 则可 ...
- vps mysql自动关闭
买了个阿里云的vps 装了一个wordpress,mysql一直自动关闭,百思不得其解,只有搜索 最后才发现是因为服务器内存太小,毕竟是最便宜的才512m ---------------------- ...
- Effective C++ -----条款22:将成员变量声明为private
切记将成员变量声明为private.这可赋予客户访问数据的一致性.可细微划分访问控制.允诺约束条件获得保证,并提供class作者以充分的实现弹性. protected并不比public更具有封装性.
- Javascript调用C#后台方法及JSon解析
Javascript调用C#后台方法及JSon解析 如何使用Ajax 调用C# 后台方法. 本文目录 如何使用Ajax 调用C# 后台方法. 1.后台(.cs)测试方法 2.前台调用(javasc ...
- ASP.NET SignalR 与 LayIM2.0 配合轻松实现Web聊天室(十) 之 自定义系统消息和总结
前言 本篇主要讲解一个东西,就是我们自定义系统消息.效果如下: 首先我们要做的准备工作就是改写 layim 的消息模板,如果不改的话就成为某个用户发送的消息了,那么体验就稍微差一些.找到模板我们看一下 ...
- debug与release
因为在Debug中有ASSERT断言保护,所以要崩溃,而在Release优化中就会删掉ASSERT,所以会出现正常运行. void func() { char b[2]={0}; strc ...
- redis配置详情
# Redis configuration file example # Note on units: when memory size is needed, it is possible to sp ...
- NYOJ题目817英文藏头诗
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAtEAAAKXCAIAAADLqoEhAAAgAElEQVR4nO3dO1LrzNbG8W8S5AyE2D