关于一系列的f函数

fopen()函数的使用
fopen(“文件名”,“选择方式”);
选择方式有常见的两种;
r: 关于r,打开一个已存在的文本文件,只能从中读取数据;
w:关于w,打开或新建一个文本文件,只能写入数据,若文件已存在则覆盖原全部内容;
废话不多说,直接上代码
//*读取一个创建过的文档内容
#include <stdio.h>
int main () {
FILE *fp;
int c;
fp = fopen(“file.txt”,“r”);
while(1) {
c = fgetc(fp);
if( feof(fp) ) {
break ;
}
printf("%c", c);
}
fclose(fp);
return(0);
}
对以上代码进行描述
1关于f的函数均是存储在stdio.h头文件里
2fopen()中的文件名所在的路径需要与你在visual stdio c++6.0中所创建的路径是一样的
例如我在d盘创建一个写c的程序,那么我在fopen()中所写的文件名必须在D盘中
关于一系列的f函数
我现在在D盘创了一个file.txt文件
那么我就需要我所创建的c程序的路径也在D盘中
关于一系列的f函数
那么在返回去看看之前的file.txt中是什么内容
关于一系列的f函数
两者是相互吻合的
3`关于fgetc()的用法,fgetc()函数为字符输入函数
其调用形式为 字符变量=fgetc(文件指针),所以我之前定义一个ch
ch=fgetc(fp)从fp指向的文件中读取一个字符并赋予字符变量ch
4关于feof()函数
feof(文件指针):文件尾测试函数,该函数用于在执行对指定文件的I/O操作之后,测试文件读写的指针是否已经指向文件尾,如果是,则函数返回值为1,否则返回值为0;
//*创建一个文本并向其输入一些内容
#include <stdio.h>
#include <stdlib.h>

int main () {
FILE * fp;

fp = fopen (“file.txt”, “w+”);
fprintf(fp, “%s %s %s %d”, “We”, “are”, “in”, 2012);

fclose(fp);

return(0);
}
对以上代码进行描述
fprintf()函数
函数的调用形式为
fprintf(fp,格式控制串,输出列表);其中,fp是指向要写入文件的文件型指针,格式控制串,输出列表同printf函数,功能是将输出列表中的各个变量或常量,依次按格式控制串中的格式控制符说明的格式写入fp指向的文件中。

关于fgets()函数
它从指定的流中读取一行并将其存储到str指向的字符串中。当读取(n-1)个字符,读取换行符到达文件结尾(以先到者为准)时,它将停止。
句法 :

char * fgets(char * str,int n,FILE * stream)
str:指向char数组的指针,在该数组中读取的字符串被复制。
n:要复制到str中的最大字符数
(包括终止的空字符)。

  • stream:指向标识输入流的FILE对象的指针。
    stdin可用作从标准输入读取的参数。

    返回:函数返回str
    示例
    #include <stdio.h>
    #define MAX 15
    int main()
    {
    char buf[MAX];
    fgets(buf, MAX, stdin);
    printf(“string is: %s\n”, buf);

    return 0;
    }
    Input:
    Hello and welcome to GeeksforGeeks

Output:
Hello and welc
对以上代码的描述
这里你要数注意stdin可以换为一个指向文件类型指针

关于fputs()函数
其一般格式为fputs(str,fp)其功能是把一个字符串str写入到fp所指向的文件上,fputs()函数中第一个参数可以是字符串常量,字符数组名或字符型指针。
实例练习
//*利用字符串读写函数编程实现:将test.txt复制到result.txt中。同时,将test.txt文件中的内容显示在屏幕上
#include<stdio.h>
#include<stdlib.h>` q
int main()
{
FILE *fp1,*fp2;
char str[100];
fp1=fopen(“test.txt”,“r”);
if(fp1NULL){
printf(“创建失败:\n”);
exit(0);
}
fp2=fopen(“result.txt”,“w”);
if(fp2
NULL)
{
printf(“创建失败:\n”);
exit(0);
}
while(fgets(str,10,fp1)!=NULL){
fputs(str,fp2);

}
printf("%s",str);
fclose(fp1);
fclose(fp2);
}