IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C语言 文件file -> 正文阅读

[C++知识库]C语言 文件file

fprintf函数


fprintf是C中的一个格式化库函数,位于头文件中,其作用是格式化输出到一个流文件中;函数原型为int fprintf( FILE *stream, const char *format, [ argument ]…),fprintf()函数根据指定的格式(format),向输出流(stream)写入数据(argument)。针对于文件。

fscanf函数
?

fscanf()函数:

功 能: 从一个流中执行格式化输入,fscanf遇到空格和换行时结束,注意空格时也结束。

用 法:int fscanf(FILE *stream, char *format,[argument...]);

int fscanf(文件指针,格式字符串,输入列表);
?

rewind函数

函数名: rewind()
功 能: 将文件内部的位置 指针重新指向一个流( 数据流/文件)的开头
注意:不是 文件指针而是文件内部的位置指针,随着对文件的读写文件的位置指针(指向当前读写字节)向后移动。而文件指针是指向整个文件,如果不重新赋值文件指针不会改变。
用 法: void rewind(FILE *stream);
头文件: ?stdio.h

返回值:无

ftell函数

在c语言中,ftell函数用来返回当前文件指针的位置。定义在stdio.h头文件中。

函数原型:long ftell(FILE *fp)
返回当前文件指针位置。这个位置是当前文件指针相对于文件开头的位移量。

返回值:返回文件指针的位置,若出错则返回-1L

fseek函数

FILE 文件结构中 , 存在一个指针 , 每次调用文件的读写函数 , 该指针就会移动 ;

如 fgets / fputs , getc / putc , fscanf / fprintf , fread / fwrite 等函数 ;

默认情况下 , 指针是从前向后移动的 ;

该文件内部的指针指向的位置可以通过 fseek 函数进行改变 ;


fseek 函数原型如下 : 重新设置文件内部指针的位置 ;

#include <stdio.h>
int fseek(FILE *stream, long offset, int fromwhere);
1
2
设置的指针的位置是 起始位置 + 偏移量 ;

其中的 int fromwhere 参数就是 起始位置 , 有以下三种选择 :

文件头 SEEK_SET 0
当前位置 SEEK_CUR 1
文件尾 SEEK_END 2
long offset 偏移量参数 , 可以为正数 , 也可以为负数 ;

如果执行成功 , 则返回 0 , 失败返回非 0 , 并设置 error 错误代码?
?

typedef struct stu
{
	int id;
	char name[20];
	float score;
	char sex;
}MSG;

int main()
{
	MSG msg[4] = {{1001,"lilei",98,'m'},{1002,"lucy",88,'f'},{1003,"jim",78,'m'},{1004,"john",68,'m'}};
	FILE *fp = fopen("./1.txt","r+");
	if(fp == NULL)
	{
		printf("failed\n");
	}
	int i;
	for(i = 0 ; i < 4 ; i++)
	{
		fprintf(fp,"%d %s %f %c\n ",msg[i].id,msg[i].name,msg[i].score,msg[i].sex);
	}
	rewind(fp);
	MSG r_msg[4];
		for(i = 0 ; i < 4 ; i++)
	{
		fscanf(fp,"%d%s%f%c\n ",&r_msg[i].id,r_msg[i].name,&r_msg[i].score,r_msg[i].sex);
	}
		for(i = 0 ; i < 4 ; i++)
	{
		printf(fp,"%d %s %f %c\n ",r_msg[i].id,r_msg[i].name,r_msg[i].score,r_msg[i].sex);
	}
	long ret = ftell(fp);
	printf("%ld\n",ret);
	
	fseek(fp,5,SEEK_SET);
	fputs("lisi",fp);
	fseek(fp,-4,SEEK_CUR);
	fputs("lilei",fp);
	return 0;
}

重定向

FILE *freopen(要打开的文件名,打开模式(加引号),文件指针标准流、stdin /?stdout)

freopen("CON","w",stdout);? 关闭输入/输出流。

int main()
{
	FILE *fp = freopen("stdout.txt","w",stdout);
	if(fp == NULL)
	{
		printf("freopen failed\n");
	 } 
	 puts("pride is the devil");
	 puts("no role model");
//	 fclose(stdout);
	 puts("my life");
	 puts("Amari");
	 freopen("CON","w",stdout);
	 puts("middle child");
	 puts("a lot");
	 fclose(fp);
	 return 0;
 } 

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-09-24 20:38:18  更:2022-09-24 20:41:52 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 14:17:56-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码