文件流:"fopen","fclose",“ftell”"fseek","fgets","fprintf" ,“feof”,"fwrite","fread"
char const* filename="D:/hello.txt";
路径名使用的是“/”或者使用 转义字符“\\”;
"fopen",
FILE *fp=fopen(char const *name,char const mode);
e.g:FILE *fp = fopen(filename,"wb");
打开文件流,name为要打开文件的路径,如这里的filename;mode 为对文件的操作模式,通常使用:“wb”(写操作),“rb”(读操作);
如果打开文件成功返回一个指向FILE结构的指针;否则,返回一个NULL指针;
"fclose",
fclose(FILE* name);
关闭文件流,name 为之前打开的文件指针,如这里的filename;
如果执行成功返回0,否则返回EOF;
e.g: fclose(fp);
"ftell",
long ftell(FILE *stream);
表示返回下一个读取或者写入将要开始的位置距离文件起始位置的偏移量。
e.g:
fseek(fp,5,SEEK_SET);
int i = ftell(fp); //这里i=5;
"fseek",
int fseek(FILE *stream, long offset, int from);
表示对将要写入的位置的定位;
stream为打开的文件指针,filename;
offset为距离from参数的相对距离;
from为定位的基准;模式为:SEEK_SET(从流的起始位置起,往后offset个字节)
SEEK_CUR(从流的当前位置起,往前往后offset个字节)
SEEK_END(从流的末尾起,往前往后offset个字节)
e.g:
fseek(fp,-5,SEEK_END);
fread(buf,1,4,fp);
"fgets",
char *fgets( char *buffer, int buffer_size, FILE* stream);
从指定的stream读取字符,并复制到buffer中。当读取到一个换行符号“\n”并存储到缓冲区之后就不在读取;如果缓冲区内存储的字符数达到buffer_size-1个时,同样停止读取。
下次调用fgets将从流的下一个字符开始读取。在任何一个情况下,一个NUL字节降被添加到缓冲区所存储数据的末尾,使之成为一个字符串;
如果失败,fgets返回一个NULL指针;否则返它的第一个参数(指向缓冲区的指针);
e.g:
char* ret = fgets(buf,512,fp); //成功,则返回buf指针;
"fprintf",
int fprintf(FILE *stream,char const *format,......) // 将数据转换成字符串文本,并写入stream文件中;
等于:
char buf[512];
sprintf(buf,"%s\n",fp);
fwrite(buf,1,strlen(line),fp);
e.g : fprintf(fp, "%s\n", buf);
"fwrite",
size_t fwrite(const void* buffer, size_t size, size_t count, FILE* stream);
size 恒为1;
将buffer中的 count个字节写入到文件steam中;
e.g:
fwrite(buf,1,4,fp);
"fread",
size_t fread(const void* buffer,size_t size, size_t count ,FILE *stream)
size恒为1; 从stream文件中读取count个字节存放buffer中;
返回值为:实际读取到的字节个数;
e.g:
fread(buf,1,4,fp);
"feof",
int feof(FILE *stream);
如果流当前处于文件尾,feof函数返回真。
e.g:
while (!feof(fp))
{
char* ret = fgets(buf, 512, fp);
if (ret)
{
printf("got::%s", ret);
}
}
举例:
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std; int main()
{
const char* filename = "d:/aaa.txt";
FILE* fp = fopen(filename, "wb"); if (fp == NULL)
{
printf("failed to open file\n");
return -;
} char buf[] = {};
int m, n;
printf("请输入两个整数:");
scanf("%d%d",&m,&n); sprintf(buf,"m=%d,n=%d",m,n);
fwrite(buf,, strlen(buf), fp); //fprintf(fp,"f=%d,g=%d",m,n);
fclose(fp);
system("pause");
return ;
}
文件流:"fopen","fclose",“ftell”"fseek","fgets","fprintf" ,“feof”,"fwrite","fread"的更多相关文章
- 文件操作 fopen() fclose()
#define _CRT_SECURE_NO_DEPRECATE /*取消scanf,printf不安全之类的错误提示*/ /* fopen example */ #include <stdio ...
- PHP 文件处理----fopen(),fclose(),feof(),fgets(),fgetc()
fopen() 函数用于在 PHP 中打开文件. 打开文件 fopen() 函数用于在 PHP 中打开文件. 此函数的第一个参数含有要打开的文件的名称,第二个参数规定了使用哪种模式来打开文件: < ...
- 移动文件流的读写指针---fseek
函数原型:int fseek(FILE *stream,long offset,int origin) stream:文件指针, offset:偏移量,正数表示正向偏移,负数表示负向偏移.origin ...
- c语言中的文件流
一.打开和关闭文件 #include int main( void ) { FILE* pReadFile = fopen( "E:\\mytest.txt", "r&q ...
- FILE文件流的中fopen、fread、fseek、fclose的使用
FILE文件流用于对文件的快速操作,主要的操作函数有fopen.fseek.fread.fclose,在对文件结构比较清楚时使用这几个函数会比较快捷的得到文件中具体位置的数据,提取对我们有用的信息,满 ...
- C语言基础(20)-文件操作(fopen,getc,fclose)
一.文件操作 读文件的顺序: 1.先打开文件 2.读写文件 3.关闭文件 1.1 fopen FILE *fopen( const char *path, const char *mode ); 函数 ...
- 函数fgets和fputs、fread和fwrite、fscanf和fprintf用法小结 (转)
函数fgets和fputs.fread和fwrite.fscanf和fprintf用法小结 字符串读写函数fgets和fputs 一.读字符串函数fgets函数的功能是从指定的文件中读一个字符串到字符 ...
- Linux 文件流管理
1. 打开/关闭文件 1). 打开文件 / fopen 作用: 打开一个文件,将其与文件流联系起来,方便后续的操作 头文件: #include <stdio.h> 函数原型: FILE * ...
- (C/C++学习)2.C语言中文件流操作基本函数总结
函数所在头文件:stdio.h 说明:前半部分主要为对各个文件流操作函数的例举,后半部分着重于上机运行分析.文中部分引用自王桂林老师的C/C++课件. 1.FIELE *fopen(const cha ...
随机推荐
- 设计模式之单例模式与工厂模式的Python实现(二)
2. 工厂模式 工厂模式是创建型设计模式的一种.核心的思想是,通过传递给类或函数某种产品的信息来创建产品并返回.当我们想得到产品a对象,只需把产品a的名字传递给工厂函数就能得到产品a对象.而核心思想的 ...
- 【bzoj4881】[Lydsy2017年5月月赛]线段游戏 树状数组+STL-set
题目描述 quailty和tangjz正在玩一个关于线段的游戏.在平面上有n条线段,编号依次为1到n.其中第i条线段的两端点坐标分别为(0,i)和(1,p_i),其中p_1,p_2,...,p_n构成 ...
- [1]区分event对象中的[clientX,offsetX,screenX,pageX]
前言 在平时的开发中,非常讨厌的就是兼容性了,兼容性的问题总会让我们记忆混淆,所以这次来区分一下event对象中的常用获取鼠标位置. clientX clientY event.clientXeven ...
- SQL联合查询(内联、左联、右联、全联)语法
SQL联合查询(内联.左联.右联.全联)语法 概述: 联合查询效率较高,举例子来说明联合查询:内联inner join .左联left outer join .右联right outer join ...
- shell 将字符串分割成数组
代码:test.sh #!/bin/bash a="one,two,three,four" #要将$a分割开,可以这样: OLD_IFS="$IFS" IFS= ...
- 【Android开发日记】之入门篇(一)——开发环境的搭建
写给自己的话:至此,大学的时光已经剩下一年的时光,下一年等毕业设计结束后就算是正式地踏入社会.自己学android也不过几个月的时间,为了更好管理文档,写点东西记录下自己曾经做过的点点滴滴是一个不错的 ...
- flask框架基本使用(2)(响应与重定向)
#转载请留言联系 flask 框架基本使用(1):https://www.cnblogs.com/chichung/p/9756935.html 1. flask 自定义返回状态码与响应头 from ...
- RobotFramework自动化1-环境搭建【转载】
本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/robotframework/ 前言 Robot Framework是一款python编 ...
- Python基础-列表、元祖
1. 列表.元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 定义列表 names = ['Alex',"Tenglan",'Eric ...
- qt include无法自动补齐
原因一: 检查cmake有没有include_directories 原因二: CmakeList.txt放错位置 原因三: 没有用qt new file来创建头文件