zoukankan      html  css  js  c++  java
  • fscanf函数的用法

    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,姓名和地址:
    ");
    	scanf("%d%s%s", &student.id, student.name, student.address);
    
    	//将学生信息存入D:\markdown.txt文件中
    	fprintf(fp, "%d	%s	%s
    ", student.id, student.name, student.address);
    
    	Student temp;
    	//重置文件指针
    	rewind(fp);
    	//将文件中的信息读取出来并且存储到temp中
    	fscanf(fp, "%d	%s	%s
    ", &temp.id, temp.name, temp.address);
    
    	printf("第%d位学生的姓名为:%s,地址为%s
    ", temp.id, temp.name, temp.address);
    	
    	fclose(fp);
    
    	return 0;
    }
    

    运行结果:

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

    注意点

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

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

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

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

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

    2、scanf和fscanf的相互转换

    char name[10] = "";
    scanf("%[0-2]", name);				//等价于下一句
    fscanf(stdin, "%[0-2]", name);		//等价于上一句
    printf("%s", name);
  • 相关阅读:
    Timer控件和MenuStrip控件
    ListView的使用
    TreeView使用
    打包Apk之Could not download groovy-all.jar (org.codehaus.groovy:groovy-all:2.4.15)以及appIcon报错
    轮播图的组合控件、自定义属性、自动轮播
    【LeetCode】080. Remove Duplicates from Sorted Array II
    【阿里巴巴】2018秋招研发工程师笔试题
    【Facebook】等差子序列个数
    【LeetCode】137. Single Number II
    【Sublime Text 3】编译环境
  • 原文地址:https://www.cnblogs.com/yaya12138/p/11329319.html
Copyright © 2011-2022 走看看