文件输入/输出

Posted 醉卧何处

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文件输入/输出相关的知识,希望对你有一定的参考价值。

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相同,存储输入的地址,第二个输入字符串的最大长度,第三个指向要读取的文件,自动在最大数目达到前加‘\0’,所以读取MAX-1个字符
----最大数目前读完,在‘\0’前加个‘\n’

 

 

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

 

 

 


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

 

 

fgetpos() fsetpos 文件比较大时用


ungetc()放回字符

fflush()刷新缓存区

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

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

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

 

以上是关于文件输入/输出的主要内容,如果未能解决你的问题,请参考以下文章

Python3 输入输出和File(文件) 方法

Java如何输入输出DBF格式文件?

C++的TXT的文件的输入和输出

07输入输出重定向

Java程序设计输入输出

2017/03/27学习笔记