fprint
fprintf是C/C++中的一个格式化库函数,位于头文件<cstdio>或<bits/stdc++.h>中,其作用是格式化输出到一个流/文件中;函数原型为int fprintf( FILE *stream, const char *format, [ argument ]...),fprintf()函数根据指定的格式(format)向输出流(stream)写入数据(argument)。
函数原型:int fprintf (FILE * stream, const char*format, [argument])
FILE*stream:文件指针 const char* format:输出格式
fprintf( )会根据参数format 字符串来转换并格式化数据, 然后将结果输出到参数stream 指定的文件中, 直到出现字符串结束('\0')为止。
返回值: fprintf()的返回值是输出的字符数,发生错误时返回一个负值.
fscanf
fscanf 位于头文件<stdio.h>中, 其功能为根据数据格式(format)从输入流(stream)中读入数据(存储到argument);与fgets的差别在于:fscanf遇到空格和换行时结束,注意空格时也结束,fgets遇到空格不结束
函数原型: int fscanf(FILE * stream, const char * format, [argument...]);
FILE*stream:文件指针 const char* format:输出格式
返回值:整型,成功返回读入的参数的个数,失败返回EOF(-1)。
#include<stdio.h>
void fprintF();
void fscanF();
void fscanF() {
FILE* outfp;
int num;
outfp = fopen("data.txt", "r");
while(NULL == outfp) {
printf("文件读取错误");
}
fscanf(outfp, "%d", &num);
while (!feof(outfp)) {
printf("%d ",num);
fscanf(outfp, "%d", &num);
}
fclose(outfp);
}
void fprintF() {
FILE* infp;
int num;
infp = fopen("data.txt", "w");
if (NULL == infp) {
printf("文件打开出错啦!");
}
printf("请输入数字(-1结束输入)\n");
scanf("%d", &num);
while (-1 != num) {
fprintf(infp, "%d ", num);
printf("请输入数字(-1结束输入)\n");
scanf("%d", &num);
}
printf("成功存入");
fclose(infp);
}
int main() {
fprintF();
fscanF();
return 0;
}