IO操作:
c语言提供IO操作,头文件在stdio.h
序号 | 原型 | 备注 |
fopen函数 | FILE *fopen(const char *filename, const char *mode); | 打开文件 |
fread函数 | size_t fread(void *ptr, size_t size, size_t nitems, FILE *stream); | 读文件 |
fwrite函数 | size_t fwrite (const void *ptr, size_t size, size_t nitems, FILE *stream); | 写文件 |
fclose函数 | int fclose(FILE *stream); | 关闭文件 |
fflush函数 | int fflush(FILE *stream); | 把文件流里的所有未写出数据立刻写 |
fseek函数 | int fseek(FILE *stream, long int offset, int whence); | 读写位置 |
fgetc、getc和getchar函数 | int fgetc(FILE *stream); int getc(FILE *stream); int getchar() | 从流中获取字符 |
fputc、putc 和 putchar函数 | int fput(int c, FILE *stream); int putc(int c, FILE *stream); int putchar(int c); | int fput(int c, FILE *stream); int putc(int c, FILE *stream); 作用是把一个字符写到一个输入文件流中 int putchar(int c):将字符串输出到终端 |
fgets和gets函数 | char *fgets(char *s, int n, FILE *stream); char *gets(char *s); | char *fgets(char *s, int n, FILE *stream):从流中获取字串 作用是从输入文件流stream里读取一个字符串 char *gets(char *s):从标准输入读取数据并丢弃遇到的换 |
mode:指定文件的打开方式,它取下列字符串中的值:mode参数 说明
“r"或”rb“ 以只读方式打开
“w”或“wb” 以写方式打开,并把文件长度截短为0
"a"或“ab” 以写方式打开,新内容追加在文件尾
“r+”或“rb+”或“r+b” 以更新方式打开(读和写)
“w+”或“wb+”或“w+b” 以更新方式打开,并把文件长度截短为0
“a+”或“ab+”或“a+b” 以更新方式打开,新内容追加在文件尾
文件读:
#include "test.h"
#include <iostream>
using namespace std;
int main()
{
/*将输入的字符串输出到文件里
1.从控制台输入的到变量
2.输入到文件中
FILE* fp ;
fopen();
scanf()
fclose();
fscanf()
fgets()
*/
/*
函数:fopen():打开成功时返回为非空指针,否则相反
第一个参数:文件存在路径
第二个参数:读写属性:r,w,a,r+,w+,a+
*/
FILE* fp=fopen("./file.txt","a+");
if(!fp)
{
cout<<"open file failed"<<endl;
return 1;
}
/*
fprintf:向文件输出字符串,与printf区别,printf输出的是终端
第一个参数:文件指针
第二个参数:字符串
*/
char str[128]={0};
/*
函数fgets:从文件里读取字符串
第一个参数:字符串变量
第二个参数:读取字符串个数
第三个参数:文件指针
*/
//cout<<fgets(str,20,fp)<<endl;
while(!feof(fp))
{
fscanf(fp,"%s",str);
cout<<str<<endl;
}
//fputs(str,fp);
/*
函数:fclose():关闭文件指针
*/
fclose(fp);
}
文件写:
#include "test.h"
#include <iostream>
using namespace std;
int main()
{
/*将输入的字符串输出到文件里
1.从控制台输入的到变量
2.输入到文件中
FILE* fp ;
fopen();
scanf()
fclose();
fprintf()
*/
/*
函数:fopen():打开成功时返回为非空指针,否则相反
第一个参数:文件存在路径
第二个参数:读写属性:r,w,a,r+,w+,a+
*/
FILE* fp=fopen("./file.txt","a+");
if(!fp)
{
cout<<"open file failed"<<endl;
return 1;
}
/*
fprintf:向文件输出字符串,与printf区别,printf输出的是终端
第一个参数:文件指针
第二个参数:字符串
*/
char str[128]={0};
printf("input string:\n");
/*
scanf():从终端输入到字符串变量里
第一个函数:格式化参数
第二个参数:字符串变量
*/
scanf("%s",str);
fprintf(fp,str);
/*
函数:fclose():关闭文件指针
*/
fclose(fp);
}
参考: