本篇文章会讲述一些其他有关文件操作的函数,相比前两篇文章介绍的函数,有些可能不大常用。
1. feof()函数
·原型:
int feof (FILE *stream);
·使用方法:检测“流”上的文件结束符EOF,如果检测得到,则返回一个非零值,否则返回0。
·例子(将一个文件的文本内容复制到另一个文件):
#include<stdio.h>
int main(void)
{
FILE* input = fopen("D:\\abc.in", "r");
FILE* output = fopen("D:\\abc.out", "w");
while (!feof(input))
{
fprintf(output, "%c", fgetc(input));
}
fclose(stream);
return 0;
}
2. fgetc()函数
·原形:
int fgetc(FILE *stream);
·使用方法:不断从文件中读下一个字符,读到EOF时结束,并返回一个值。
·例子:见feof()函数的例子,里面有fgetc()函数的使用。
·相关函数:getchar()函数(此函数是从stdin标准流读入的(一般从控制台读入))
int getchar(void);
getc()函数(此函数可以读多个(文件)流,而fgetc()只能读一个流)
int getc(FILE *stream);
3. fputc()函数:
·原型:
int fputc(int c, FILE *stream);
·使用方法:不过多介绍,是fgetc的逆向过程(即从文件中输出字符),只是第一个参数表示要输出的字符
·例子(引用“fputc_百度百科”):
#include <stdio.h>
#include <string.h>
int main()
{
FILE*f;
char*s="Hey,Buddy!";
int i;
f=fopen("myFile.txt","w");
for(i=0;i<strlen(s);i++)
fputc(s[i],f);
fclose(f);
return 0;
}
·相关函数:putchar()、putc()函数(也是getchar(),getc()的逆向过程)。
4. fgets()函数:
·原型:
char *fgets(char *s, int n, FILE *stream);
·使用方法:参数一表示字符串的首地址,参数二表示储存数据的大小(即字符串的长度),参数三表示待读入的
文件流
·例子(引用“fgets_百度百科”):
#include<string.h>
#include<stdio.h>
int main (void)
{
FILE*stream;
char string[]="Thisisatest";
char msg[20];
/*open a file for update*/
stream=fopen("DUMMY.FIL","w+");
/*write a string into the file*/
fwrite(string,strlen(string),1,stream);
/*seek to the start of the file*/
fseek(stream,0,SEEK_SET);
/*read a string from the file*/
fgets(msg,strlen(string)+1,stream);
/*display the string*/
printf("%s",msg);
fclose(stream);
return 0;
}
·相关函数:gets()函数(还是从控制台输入字符串)
5. fputs()函数:
·原型:
int fputs(const char *s, FILE *stream);
·使用方法:fgets()的逆向过程,即将字符串输出到指定文件流中
·相关函数:puts()函数
好的,暂时介绍这些函数,更多函数可以参见stdio.h文件中的声明
转载于:https://blog.51cto.com/mlh1719233148/1729108