文件输入/输出

fopen:打开文件.第一个参数文件名的字符串地址。打开模式:r:读 w:写,会改 没有就创建 a:追加 ,没有就创建 r+:读取和写入 w+:同上但会改 没有就创建
a+:同上,但是追加 rb,wb,ab,ab+,a+b,wb+,w+b,ab+,a+b,使用二进制模式而不是文本模式打开,其他类似



getc():到达文件结尾时,会返回EOF putc() 与getchar()、putchar类似但适用于文件 putc(ch,文件指针)

fclose 关闭由指针fp指定的文件
#include<stdio.h>
int main()
{
int ch;
FILE * fp;
fp = fopen("49.c","r");
while((ch = getc(fp)!=EOF))
putchar(ch);

fclose(fp);

}

//要指定文件的属性
#include<stdio.h>
#include<stdlib.h>//exit()
#include<string.h>
#define LEN 40
int main(int argc,char *argv[])
{
FILE *in,*out;
int ch;
char name[LEN];
int count = 0;

if(argc < 2)
{
fprintf(stderr,"error!");
exit(1);
}

if((in = fopen(argv[1],"r")) ==NULL)
{
fprintf(stderr,"ERROR!");
exit(2);

}

strcpy(name,argv[1]);
strcat(name,".red");

if((out = fopen(name,"w")) == NULL)
{
fprintf(stderr,"ERROR1");
exit(3);
}


while((ch = getc(in)) != EOF)
if(count++ % 3 == 0)
putc(ch,out);

if(fclose(in) != 0 || fclose(out) != 0)
fprintf(stderr,"ERROR2");

return 0;

}


文件I/O:fprintf(),fscanf(),fgets(),fputs();


fgets()第一个参数与gets相同,存储输入的地址,第二个输入字符串的最大长度,第三个指向要读取的文件,自动在最大数目达到前加‘’,所以读取MAX-1个字符
----最大数目前读完,在‘’前加个‘ ’

fputs()不会添加换行符 stdin,stdout键盘输入和输出


fseek()在打开的文件中直接移动到任意字符处
ftell()返回文件的当前位置

fgetpos() fsetpos 文件比较大时用


ungetc()放回字符

fflush()刷新缓存区

setvbuf()建立一个供标准I/O文件使用的替换缓存区

二进制I/O:fread()和fwrite()修正了数字保存到文件中,fprintf()存的时候会把它变为字符串存储,1/3变为了0.333333

feof()检测到文件结尾返回非零值,ferror()读写错误,返回一个非零值

原文地址:https://www.cnblogs.com/zxj-262410/p/6691255.html