查看: 376|回复: 5

[C/C++] C语言文件操作 ①文件指针

[复制链接]

0

技术

9

魅力

1

原创

版主

禁止访问

Rank: 7Rank: 7Rank: 7

积分
7734
人气
176
分享
52

最佳新人活跃会员

发表于 2023-1-13 18:42:43 | 显示全部楼层 |阅读模式
本帖最后由 蒟蒻 于 2023-1-13 18:43 编辑

【前言】
我回来了!!!!
今天讲文件操作,第一章,文件指针
好的,我决定了,以后所有大括号都放在右上角,包括main函数
为了括号的问题,我整天脑壳疼qwq
PS:下面讲的所有东西都位于stdio.h中

【文件数据结构体变量】
定义文件数据结构体变量的方法如下:
[C] 纯文本查看 复制代码
FILE *pFile;

其中FILE是一个数据结构体,其原型如下:
[C] 纯文本查看 复制代码
typedef struct
{
    short level;
    unsigned flags;
    char fd;
    unsigned char hold;
    short bsize;
    unsigned char *buffer;
    unsigned ar *curp;
    unsigned istemp;
    short token;
}FILE;

FILE *pFile等价于struct FILE *pFile
【文件指针の打开】
文件打开的函数是fopen,其原型如下:
[C] 纯文本查看 复制代码
_ACRTIMP FILE* __cdecl fopen(
        _In_z_ char const* _FileName,
        _In_z_ char const* _Mode
        );


_FileName:文件名(路径)
_Mode:文件打开方式(读,写,读+写)等等


提一嘴,VS编译百分之一万会报错,解决办法如下:
在代码第一行(不算注释)添加以下代码:
[C] 纯文本查看 复制代码
#define _CRT_SECURE_NO_WARNINGS 

使用示例
[C] 纯文本查看 复制代码
FILE *pFile = fopen("E:\\Homo\\114514\\1919810\\114514.txt","r");

什么意思呢?
以读的方法打开E:\\Homo\114514\1919810\114514.txt
具体的打开方法如下(来源:CSDN)

【关闭文件指针】
关闭文件指针的函数为fclose,原型如下:
[C] 纯文本查看 复制代码
 _ACRTIMP int __cdecl fclose(
        _Inout_ FILE* _Stream
        );

_Stream:文件指针
例如:
[C] 纯文本查看 复制代码
fclose(pFile);


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

评分

参与人数 2经验 +10 人气 +4 收起 理由
usr + 1 赞一个!
YFSafe + 10 + 3 赞一个!

查看全部评分

本帖被以下淘专辑推荐:

小菜鸡一枚~
Gitee主页:https://gitee.com/juruoqwq

4

技术

17

魅力

6

原创

版主

禁止发言

Rank: 7Rank: 7Rank: 7

积分
5370
人气
208
分享
36

最佳新人活跃会员

发表于 2023-1-14 00:19:54 | 显示全部楼层
好文,赞一个
YF工作室驻x64论坛分部
工作室曾开发的软件:YFSafe安全软件,YFChat在线聊天软件,MBRTools等。
欢迎有能力的你加入我们一起共同进步。请发邮件至yfstudio2021@outlook.com

0

技术

9

魅力

1

原创

版主

禁止访问

Rank: 7Rank: 7Rank: 7

积分
7734
人气
176
分享
52

最佳新人活跃会员

 楼主| 发表于 2023-1-14 13:48:51 | 显示全部楼层

感谢支持
小菜鸡一枚~
Gitee主页:https://gitee.com/juruoqwq

4

技术

17

魅力

6

原创

版主

禁止发言

Rank: 7Rank: 7Rank: 7

积分
5370
人气
208
分享
36

最佳新人活跃会员

发表于 2023-1-14 22:28:54 | 显示全部楼层

我一般用ifstream
很少用fopen
YF工作室驻x64论坛分部
工作室曾开发的软件:YFSafe安全软件,YFChat在线聊天软件,MBRTools等。
欢迎有能力的你加入我们一起共同进步。请发邮件至yfstudio2021@outlook.com

0

技术

9

魅力

1

原创

版主

禁止访问

Rank: 7Rank: 7Rank: 7

积分
7734
人气
176
分享
52

最佳新人活跃会员

 楼主| 发表于 2023-1-15 10:59:47 | 显示全部楼层
YFSafe 发表于 2023-1-14 22:28
我一般用ifstream
很少用fopen

但是我喜欢fopen,更亲民
小菜鸡一枚~
Gitee主页:https://gitee.com/juruoqwq

4

技术

17

魅力

6

原创

版主

禁止发言

Rank: 7Rank: 7Rank: 7

积分
5370
人气
208
分享
36

最佳新人活跃会员

发表于 2023-1-15 22:05:50 | 显示全部楼层
蒟蒻 发表于 2023-1-15 10:59
但是我喜欢fopen,更亲民

是的,fread可以指定读取的长度,但是ifstream据我所知只能按行读取,所以我一般用它来读取按行排序的内容
YF工作室驻x64论坛分部
工作室曾开发的软件:YFSafe安全软件,YFChat在线聊天软件,MBRTools等。
欢迎有能力的你加入我们一起共同进步。请发邮件至yfstudio2021@outlook.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表