fprintf()函数和fscanf()函数会使文件指针向后移动。
int fprintf (FILE* stream, const char*format, [argument])
其中,FILE*stream为文件指针,const char* format以什么样的格式输出,[argument]为输入列表。
例子:
#include
#include
#include
FILE* stream;
int main(void)
{
int i = 10;
double fp = 1.5;
char s[] = "this is a string";
char c = '\n';
stream = fopen("fprintf.out", "w");
fprintf(stream, "%s%c", s, c);
fprintf(stream, "%d\n", i);
fprintf(stream, "%f\n", fp);
fclose(stream);
system("typefprintf.out");
return 0;
}
屏幕输出:
this is a string
10
1.500000
函数名: fscanf
功 能: 从一个流中执行格式化输入,fscanf遇到空格和换行时结束,注意空格时也结束。这与fgets有区别,fgets遇到空格不结束。
返回值:整型,成功返回读入的参数的个数,失败返回EOF(-1)。
例子:
#include
#include
int main(void)
{
int i;
printf("Input an integer:");
/*read an integer from the standard input stream*/
if(fscanf(stdin,"%d",&i))
printf("The integer read was:%d\n",i);
else
{
fprintf(stderr,"Error reading an\
integer from stdin.\n");//返回EOF如果读取到文件结尾。
exit(1);
}
return0;
}
fscanf和fprintf一般读入的是文本,通常不用fscanf和fprintf对二进制文件进行读入,输出。
而fread和fwrite则经常被用在对二进制文件的读入,输出。
会顺序自动后移,运行一下 groty 的程序,就可以发现。另外你也可以利用fseek来实现移动文件指针。
不会