心之镇

~宁以致远~
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

fread,fwrite ,fscanf,fprintf 使用

Posted on 2009-10-10 19:32  心之镇  阅读(947)  评论(0编辑  收藏  举报

函数名: fread
功 能: 从一个流中读数据
用 法:
int fread(void *ptr, int size, int nitems, FILE *stream);
程序例:

#include
<string.h>
#include
<stdio.h>

int main(void)
{
FILE
*stream;
char msg[] = "this is a test";
char buf[20];

if ((stream = fopen("DUMMY.FIL", "w+"))
== NULL)
{
fprintf(stderr,
"Cannot open output file.\n");
return 1;
}

/* write some data to the file */
fwrite(msg, strlen(msg)
+1, 1, stream);

/* seek to the beginning of the file */
fseek(stream, SEEK_SET,
0);

/* read the data and display it */
fread(buf, strlen(msg)
+1, 1, stream);
printf(
"%s\n", buf);

fclose(stream);
return 0;
}
  
C/C++ code
函数名: fwrite
功 能: 写内容到流中
用 法:
int fwrite(void *ptr, int size, int nitems, FILE *stream);
程序例:

#include
<stdio.h>

struct mystruct
{
int i;
char ch;
};

int main(void)
{
FILE
*stream;
struct mystruct s;

if ((stream = fopen("TEST.$$$", "wb")) == NULL) /* open file TEST.$$$ */
{
fprintf(stderr,
"Cannot open output file.\n");
return 1;
}
s.i
= 0;
s.ch
= 'A';
fwrite(
&s, sizeof(s), 1, stream); /* write struct s to file */
fclose(stream);
/* close file */
return 0;
}


函数名: fscanf
功 能: 从一个流中执行格式化输入
用 法:
int fscanf(FILE *stream, char *format[,argument...]);
程序例:

#include
<stdlib.h>
#include
<stdio.h>

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: %i\n",
i);
else
{
fprintf(stderr,
"Error reading an \
integer from stdin.\n");
exit(1);
}
return 0;
}





C/C++ code
函数名: fprintf
功 能: 传送格式化输出到一个流中
用 法:
int fprintf(FILE *stream, char *format[, argument,...]);
程序例:

/* Program to create backup of the
AUTOEXEC.BAT file
*/

#include
<stdio.h>

int main(void)
{
FILE
*in, *out;

if ((in = fopen("\\AUTOEXEC.BAT", "rt"))
== NULL)
{
fprintf(stderr,
"Cannot open input \
file.\n");
return 1;
}

if ((out = fopen("\\AUTOEXEC.BAK", "wt"))
== NULL)
{
fprintf(stderr,
"Cannot open output \
file.\n");
return 1;
}

while (!feof(in))
fputc(fgetc(
in), out);

fclose(
in);
fclose(
out);
return 0;
}