提示:以下是本篇文章正文内容,下面案例可供参考
为了方便理解使用,引入scanf和printf两个函数。
一、fscanf
该函数原型如下:
int fscanf ( FILE * stream, const char * format, ... );
而scanf函数的原型如下:
int scanf ( const char * format, ... );
不难发现,fscanf和scanf的使用大致相同,只是多了个参数。
区别如下:
scanf和fscanf都是格式化函数
1.scanf适用于标准输入流(stdin),即从键盘等设备上输入数据
2.fscanf适用于所有输入流,可以从文件中输入数据
使用如下:
1.scanf
char ch1[20] = "";
int i = 0;
scanf("%s %d", ch1, &i);
printf("%s %d", ch1, i);
按照一定的格式(如%d %s %f等格式) 从键盘上输入数据
运行结果如下:
2.fscanf
文件中内容如下:
FILE* pf = fopen("data.txt", "r");
if (pf == NULL)
{
printf("打开失败");
}
int i = 0;
char ch[20] = "";
fscanf(pf, "%s %d", ch, &i);
printf("ch的内容为%s\n", ch);
printf("i的内容为%d\n", i);
按照一定的格式(如%d %s %f等格式)从输入流(文件/stdin)输入数据
运行结果如下:
注意:对文件进行“只读”操作时,文件必须存在。
二、fprintf
该函数原型如下:
int fprintf ( FILE * stream, const char * format, ... );
而printf的函数原型如下:
int printf ( const char * format, ... );
区别如下:
1.printf适用于标准输出流(stout),即输出数据到屏幕上。
2.fprintf适用于所有输出流,可以输出数据到文件中。
使用如下:
1.printf
int a = 12;
char ch[] = "hello";
float f = 12.5f;
printf("变量a的内容为%d\n", a);
printf("变量ch的内容为%s\n", ch);
printf("变量f的内容为%.1f\n", f);
运行结果如下:
按照一定的格式把数据输出(打印)到屏幕上
2.fprintf
FILE* pf = fopen("data.txt", "w");
if (pf == NULL)
{
printf("打开失败");
}
int a = 12;
char ch[] = "hello";
float f = 12.5f;
fprintf(pf, "%d %s %f", a, ch, f);
运行结果对文件的操作如下:
按照一定的格式向输出流(文件/stdout)输出数据