fscanf函数用法

简要介绍

fscanf()函数是格式化读写函数。它读取的对象是磁盘文件

函数原型:

int fscanf(FILE * fp,char * format,...);

其中fp为文件指针,format为C字符串,...为参数列表,返回值为成功写入的字符的个数。

fscanf函数会从文件输入流中读入数据,存储到format中,遇到空格和换行时结束

使用示例

#include <stdio.h>
#include <stdlib.h> typedef struct {
int id; //学生id
char name[30]; //学生姓名
char address[100]; //学生地址
}Student; int main()
{
Student student;
FILE* fp = fopen("D:\\markdown.txt", "wt+");
if (fp == NULL)
{
puts("文件不存在,请在指定目录下先行创建文件!");
exit(0);
} printf("请依次输入学生的id,姓名和地址:\n");
scanf("%d%s%s", &student.id, student.name, student.address); //将学生信息存入D:\\markdown.txt文件中
fprintf(fp, "%d\t%s\t%s\n", student.id, student.name, student.address); Student temp;
//重置文件指针
rewind(fp);
//将文件中的信息读取出来并且存储到temp中
fscanf(fp, "%d\t%s\t%s\n", &temp.id, temp.name, temp.address); printf("第%d位学生的姓名为:%s,地址为%s\n", temp.id, temp.name, temp.address); fclose(fp); return 0;
}

运行结果:

请依次输入学生的id,姓名和地址:
1
yaya
未知
第1位学生的姓名为:yaya,地址为未知

注意点

1、fscanf函数在文件输入流中读取数据时,遇到空格或者换行会结束读取,如果要忽略换行符的影响,可以使用

fscanf(fp, "%[^\n]", test);

在上面的这条语句中,%[]表示读取指定字符集,即%[0-2]为读取0~2之间的数字(包括0和2),^ 表示反向读取,即读取指定字符集以外的字符,遇到指定字符就停止(不会读取指定字符)。所以%[^\n]表示读取字符直到遇到\n为止。

如果要将换行符读取掉,但不存储到变量中,可以采用

fscanf(fp, "%[^\n]%*c", test);

2、scanf和fscanf的相互转换

char name[10] = "";
scanf("%[0-2]", name); //等价于下一句
fscanf(stdin, "%[0-2]", name); //等价于上一句
printf("%s", name);

fscanf函数的用法的更多相关文章

  1. fscanf()函数基本用法

    FILE *fp; while(!feof(fp)) { fscanf(fp,"%s%d%lf",a,&b,&c);//这里%s对应的a不需要加上取地址符号& ...

  2. 函数fgets和fputs、fread和fwrite、fscanf和fprintf用法小结 (转)

    函数fgets和fputs.fread和fwrite.fscanf和fprintf用法小结 字符串读写函数fgets和fputs 一.读字符串函数fgets函数的功能是从指定的文件中读一个字符串到字符 ...

  3. C++之函数fgetc和fputc、fgets和fputs、fread和fwrite、fscanf和fprintf用法小结

    #include <iostream> #include <cstdio> #include <cstdlib> using namespace std; int ...

  4. fscanf函数的应用

    转摘自:http://blog.csdn.net/mxgsgtc/article/details/13005675 以前老是被从文本里读取文件,然后逐个的进行字符解析,感觉非常的慢,自从知道了fsca ...

  5. PHP fscanf() 函数

    定义和用法 fscanf() 函数根据指定的格式对来自打开的文件的输入进行解析. 语法 fscanf(file,format,mixed) 参数 描述 file 必需.规定要检查的文件. format ...

  6. 有关日期的函数操作用法总结,to_date(),trunc(),add_months();

    相关知识链接: Oracle trunc()函数的用法 oracle add_months函数 Oracle日期格式转换,tochar(),todate() №2:取得当前日期是一个星期中的第几天,注 ...

  7. Oracle to_date()函数的用法

    Oracle to_date()函数的用法 to_date()是Oracle数据库函数的代表函数之一,下文对Oracle to_date()函数的几种用法作了详细的介绍说明,供您参考学习. 在Orac ...

  8. js中bind、call、apply函数的用法

    最近一直在用 js 写游戏服务器,我也接触 js 时间不长,大学的时候用 js 做过一个 H3C 的 web的项目,然后在腾讯实习的时候用 js 写过一些奇怪的程序,自己也用 js 写过几个的网站.但 ...

  9. Oracle trunc()函数的用法

    Oracle trunc()函数的用法 /**************日期********************/1.select trunc(sysdate) from dual --2013-0 ...

随机推荐

  1. 移动开发-UI设计

        UI:手机的用户界面 UI物理版:手机实际的屏幕像素 UI设计版:我们截屏的手机界面在ps中去量,发现的尺寸 UI放大版:手机的尺寸等比放大1.5倍得出的分辨率   响应式布局 原由:窗体缩小 ...

  2. Day 02--选题与设计(二)

    1.今天我们主要设计了一下我们微信小程序可以实现的功能,客户操作的基本流程,研究了墨刀这个工具的使用方法并试着将想法转化为原型设计项目.我们给自己的系统起名为“天天好餐”.我们认为食堂订送餐与网络上的 ...

  3. 【资源共享】eBook分享大集合

    传送门:[GitHub] 欢迎各位指点,要是能补充更是感激不尽. 主要以IT领域经典书籍收藏,以备不时之需,不一定都能看完,权且当做收藏好玩. [x] 表示文件大小超过100M(LFS). 服务器系统 ...

  4. Java网络编程之InetAddress浅析

    Java网络编程之InetAddress浅析 一.InetAddress综述 IP地址是IP使用的32位(IPv4)或者128位(IPv6)位无符号数字,它是传输层协议TCP,UDP的基础.InetA ...

  5. Storm 系列(五)—— Storm 编程模型详解

    一.简介 下图为 Strom 的运行流程图,在开发 Storm 流处理程序时,我们需要采用内置或自定义实现 spout(数据源) 和 bolt(处理单元),并通过 TopologyBuilder 将它 ...

  6. 手把手教你用深度学习做物体检测(五):YOLOv1介绍

    "之前写物体检测系列文章的时候说过,关于YOLO算法,会在后续的文章中介绍,然而,由于YOLO历经3个版本,其论文也有3篇,想全面的讲述清楚还是太难了,本周终于能够抽出时间写一些YOLO算法 ...

  7. HDU-3549Flow Problem 最大流模板题

    传送门 这里是Ford-Fulkerson写的最大流模板 #include <iostream> #include <cstdio> #include <algorith ...

  8. 【强联通图 | 强联通分量】HDU 1269 迷宫城堡 【Kosaraju或Tarjan算法】

      为了训练小希的方向感,Gardon建立了一座大城堡,里面有N个房间(N<=10000)和M条通道(M<=100000),每个通道都是单向的,就是说若称某通道连通了A房间和B房间,只说明 ...

  9. Codeforces 735D Taxes(简单数论)

    题目链接 http://codeforces.com/problemset/problem/735/D 题意:一个人的收入为n他要交的税是n的最大除数,他为了少缴税将n分成k个数n1,n2,n2... ...

  10. poj 2763 Housewife Wind(树链剖分+单点查询+区间修改)

    题目链接:http://poj.org/problem?id=2763 题意:给一个数,边之间有权值,然后两种操作,第一种:求任意两点的权值和,第二,修改树上两点的权值. 题解:简单的树链剖分. #i ...