文章目录
一、fscanf 函数
二、fprintf 函数
一、fscanf 函数
fscanf 遇到空格 , 回车 会断开 , fgets 遇到回车会断开 ;
fscanf 函数作用 : 根据数据格式 const char * format , 从文件 FILE * stream 中 , 读取数据存储到 [argument...] 参数中 ;
fscanf 函数原型 :
int fscanf(FILE * stream, const char * format, [argument...]);
使用 fgets 从文件中获取数据 ( 用作对比参照 ) :
#include <stdio.h> int main() { FILE *p = fopen("D:\\a.txt", "r"); while (!feof(p)){ char buffer[100] = {0}; fgets(buffer, sizeof(buffer), p); printf("%s\n", buffer); } // 关闭文件 fclose(p); printf("Main End\n"); return 0; }
输出 :
13 + 5 = 18
使用 fscanf 函数从文件中获取数据 : 此处读取的数据格式是 “%s” , 遇到空格或回车 , 就当做一个新的字符串进行处理 ;
#include <stdio.h> int main() { FILE *p = fopen("D:\\a.txt", "r"); while (!feof(p)){ char buffer[100] = {0}; //fgets(buffer, sizeof(buffer), p); // fscanf 与 scanf 用法一致 // fscanf 是从文件中读取 , scanf 是从命令行读取 fscanf(p, "%s", buffer); printf("%s\n", buffer); } // 关闭文件 fclose(p); printf("Main End\n"); return 0; }
执行结果 : fscanf 函数将 空格 也当做了换行 ;
输出
13 + 5 = 18 Main End
读取指定格式的字符串 : 读取 "%d + %d = %d" 格式的字符串 , 将其中的整型变量 , 输出到 a, b, c 变量中 ;
#include <stdio.h> int main() { FILE *p = fopen("D:\\a.txt", "r"); while (!feof(p)){ char buffer[100] = {0}; //fgets(buffer, sizeof(buffer), p); int a, b, c; // fscanf 与 scanf 用法一致 // fscanf 是从文件中读取 , scanf 是从命令行读取 fscanf(p, "%d + %d = %d", &a, &b, &c); printf("a=%d , b=%d , c=%d\n", a, b, c); } // 关闭文件 fclose(p); printf("Main End\n"); return 0; }
执行结果 :
a=13 , b=5 , c=18 Main End