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. 对已经存在的hbase表修改压缩方式

    业务上可能会遇到这种情况,在最初创建hbase表时候,未指定压缩方式,当数据导入之后,由rowkey带来的数据膨胀导致hdfs上的数据大小远远大于原始数据大小.所以这时候可能就不得不考虑使用压缩,但是 ...

  2. .NET使用Bogus生成大量随机数据

    .NET如何生成大量随机数据 在演示Demo.数据库脱敏.性能测试中,有时需要生成大量随机数据.Bogus就是.NET中优秀的高性能.合理.支持多语言的随机数据生成库. Bogus的Github链接: ...

  3. 常用加密解密算法【RSA、AES、DES、MD5】介绍和使用

    内容不转载了,加上链接https://blog.csdn.net/u013565368/article/details/53081195?_t=t

  4. Qt无边框窗体-最大化时支持拖拽还原

    目录 一.概述 二.效果展示 三.demo制作 1.设计窗体 2.双击放大 四.拖拽 五.相关文章 原文链接:Markdown模板 一.概述 用Qt进行开发界面时,既想要实现友好的用户交互又想界面漂亮 ...

  5. Oracle笔记_多表查询

    1 执行sql文件 @文件地址名 --执行某个sql文件: 2 多表查询 想要的数据不在同一张表,就需要多个表进行联查. 多表查询也叫做表连接查询,其中的where条件就是连接条件. 可以使用join ...

  6. CSS 锚点 :target属性 制作选项卡

    .pic img:first-of-type{display: block;} .pic img:target{display: block;}

  7. Servlet 常用API学习(一)

    Servlet常用API学习 一.Servlet体系结构(图片来自百度图片) 二.ServletConfig接口 Servlet在有些情况下可能需要访问Servlet容器或借助Servlet容器访问外 ...

  8. python暴力算法快乐数

    编写一个算法来判断一个数是不是"快乐数". 一个"快乐数"定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 ...

  9. 洛谷P1240-诸侯安置+递推非搜索

    诸侯安置 这道题是一题递推题,一开始自己不知道,用了搜索,只过了三个样例: 两两相同的合并, 成 1,1,3,3,5,5........n*2-1; 然后我们会容易发现一种不同与搜索的动态规划做法. ...

  10. codeforce#483div2D-XOR-pyramid+DP

    题意:求给定区间中最大的连续异或和: 思路:DP的思想,先dp求出每个区间的异或和,再dp更新成当前这个dp[i][j]和dp[i-1][j].dp[i-1][j+1]中的最大值: 这样可以保证是同一 ...