C++ 文件读写fopen_s/fopen

2023-05-16

最好使用fopen_s,使用fopen提示“not safe”,二者区别如下:
1…fopen_s的安全是在于比函数fopen多了溢出检测。
2.在使用上,函数fopen的返回值是文件指针,如果返回的文件指针为NULL时,则表示打开文件失败。而函数fopen_s的返回值是相应的错误代码,通过查看错误代码代表的含义,有助于你排查问题
以上参考该文章
下面给出自己的代码:

#include <iostream>
#include <stdlib.h>
using namespace std;
int main()
{
	FILE *fp_w;
	FILE *fp_r;
//	fp_w = fopen("1.cvs", "a");
	fopen_s(&fp_w ,"1.csv", "a");
	for (int i = 0; i < 5; i++)
	{
		fprintf(fp_w, "%d,%d,%d\n", 1, 2, 3);
	}
	fclose(fp_w);
	cout << "写入成功!" << endl;


	// 读取
	int num[3],Judge;
//	fp_r = fopen("1.cvs", "r"); 
	Judge=fopen_s(&fp_r, "1.csv", "r");
	if (Judge == 0)
		cout << "文件打开成功!" << endl;
	for (int i = 0; i < 5; i++) 
	{                             
		fscanf_s(fp_r, "%d,%d,%d", &num[0], &num[1], &num[2]);
		cout << num[0] << "  " << num[1] << "  " << num[2] << endl;
	}
	fclose(fp_r);
	system("pause");
}
// a,a+ : 没有文件,创建一个新文件,在写入的时候不覆盖原有信息; 
// w,w+ : 可以自动创建一个文件,写
// r,r+ : 读,文件必须存在   + 号代表读写

注意:
1.fopen_s 中的参数要取地址符;
2.fscanf_s中储存数据的变量要取地址符;
3.关于fopen_s中打开方式的参数代码注释给出了说明,也可以参考这里
最后运行结果:
在这里插入图片描述
CSV表格中数据:
在这里插入图片描述
以上。
详细的没有研究,目前这些操作够用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++ 文件读写fopen_s/fopen 的相关文章

  • fopen :invalid argument错误

    今天使用文件操作函数 xff1a fopen fread fwrite fclose时 xff0c 编译正常通过了 xff0c 但是运行时就爆出了invalid argument错误 FILE fp 61 fopen 34 a txt 34
  • Linux文件I/O编程

    文章目录 一 文件描述符 二 打开文件 三 创建文件 四 关闭文件 五 读取文件 六 向文件写入数据 七 设定文件偏移量 八 获取文件状态 九 创建和删除目录项 十 文件锁定 十一 建立文件和内存映射 十二 mmap 和 共享内存对比 I
  • C#中对txt文件的读写操作

    C 中对txt文件进行读写操作包括两种方式 一种是基于FileInfo类 调用该类的Read方法 但是该方法读出来的数据是byte格式 需要对其进行解码 将相应的字节数转换为字符 而C 中System Text引用就包含的解码的方法 相应代
  • 工具类库系列(十四)-FileData

    第十四个工具类 FileData 用于文本文件读取 保存 以及在内存中修改文本文件内容 读取 ifstream 保存 ofstream 修改内容 以string类型 获取 设置 文本文件内容 最大支持文件大小1M 上代码 FileData
  • PHP5 使用 fopen 时出现无法打开流:HTTP 请求失败错误

    这个问题似乎过去在谷歌和这里到处都有讨论 但我还没有找到解决方案 一个非常简单的 fopen 给了我一个 PHP 警告 fopen http www google ca 无法打开流 HTTP 请求失败 我正在获取的 URL 并不重要 因为即
  • fopen无法打开文件的原因是什么

    我有以下代码 我试图打开一个文本文件 char frd 32 word list txt FILE rd fopen frd rb if rd std cout lt lt Coudn t open file t lt
  • 使用 PHP 覆盖文件中的行

    覆盖文件中特定行的最佳方法是什么 我基本上想在文件中搜索字符串 parsethis 并用其他内容覆盖该行的其余部分 如果文件真的很大 日志文件或类似的文件 并且您愿意为了内存消耗而牺牲速度 您可以打开两个文件并基本上做到这一点杰里米 鲁滕建
  • 在 fopen a+ 模式下从多个线程/进程写入锁定文件之前是否需要同步/刷新?

    我正在从多个线程对单个文件执行 I O 访问此共享文件foo通过咨询文件锁进行控制 flock 2 with LOCK EX foo被打开fopen 3 mode a a 被选中是因为文档指出 对文件的后续写入将始终以当时的当前位置结束 文
  • 无法使用 fopen (php) 打开文件

    我正在尝试打开一个文件以在 php 脚本中读取 但遇到问题 这是我的代码 fileHandle fopen 1234 main csv r or die Unable to open if file exists fileHandle ec
  • fread 的下载速度比 readfile 慢很多

    我通过 PHP 脚本从 URL 向用户提供下载服务 使用时readfile 我得到了我的连接可以支持的最大下载速度 大约 2 5MB s 但是当我使用fopen fread fclose路线下载速度非常非常慢 大约1 2KB s 这是我的代
  • 使用 php 读取波斯语(Unicode 字符)文本文件

    我正在借助以下代码阅读一个波斯语文本文件 使用 PHP Reading the file name and the book UTF 8 if file exists SourceDirectoryFile NameBook name tx
  • 如何使用 HTTPS 获取网站内容

    使用 ssl HTTPs 的网站示例 https www eb2a com 1 我尝试使用 file get contents 获取其内容 但不起作用并且给出错误 ex 2 我尝试使用 fopen 但不起作用并且给出错误 ex 3 我尝试使
  • 如何在 PHP 中读取文本文件的最后 5 行?

    我有一个名为file txt这是通过向其添加行来更新的 我正在通过这段代码阅读它 fp fopen file txt r data while feof fp data fgets fp 4096 echo data 并且出现大量的线条 我
  • fopen 返回资源 ID #4

    为什么有回声Resource id 4而不是页面本身 Because fopen 返回指向文件的资源指针 而不是文件的内容 它只是打开它以供后续读取和 或写入 具体取决于您打开文件的模式 你需要fread handle 中引用的资源中的数据
  • 是否可以防止在输出 UTF-8 文件时添加 BOM? (视觉工作室 2005)

    我需要一些帮助 我正在编写一个程序 以 UTF 8 编码打开 2 个不带 BOM 的源文件 第一个包含英文文本和一些其他信息 包括 ID 第二个仅包含字符串 ID 和翻译 该程序通过将第二个文件中的英文字符替换为俄语翻译来更改第一个文件中的
  • 如何在处理输入文件时提前查看(处理 2 行)

    当逐行浏览文本文件时 我希望能够展望下一行并在处理当前行时检查它 我正在用C语言工作 我相信fseek 或其他类似的功能会帮助我解决这个问题 但我不确定也不知道如何使用它们 我想要实现一些目标 fp fopen test seeking t
  • PHP Readfile 方法的安全问题

    嘿 使用时有什么安全问题需要担心吗readfilePHP 中的方法 我想使用 readfile 方法来获取存储在各种第三方服务器上的文件的 URL 然后我将文件提供给用户 直观上 似乎存在风险 因为 URL 可以指向任何文件 另一方面 我只
  • 在 PHP 中打开命名管道时如何防止 fopen() 挂起

    我有一个命名管道文件 如下所示 prw r r 1 root root 0 Aug 11 17 01 tmp debug 当我在 PHP 中做这样的事情时 fp fopen tmp debug r 它挂起 即永远不会返回 有没有办法让这个调
  • 尝试读取宽字符会给出 EOF

    我有一个文本文件 foo txt 包含以下内容 R 2 我有一个大型程序读取它并对每个角色执行操作 但当它到达时它总是收到 EOF 这是代码的相关部分 setlocale LC ALL FILE in fopen argv 1 r whil
  • 有没有办法将 fopen_s() 与 GCC 一起使用,或者至少创建一个 #define ?

    MSVC 编译器说fopen 已弃用 建议使用fopen s 有什么办法可以使用吗fopen s 并且仍然便携 任何想法 define 微软的 s函数是不可移植的 我通常使用等效的 C89 C99 函数并禁用弃用警告 define CRT

随机推荐

  • 正态分布(Normal distribution)又名高斯分布(Gaussian distribution)

    正态分布 xff08 Normal distribution xff09 又名高斯分布 xff08 Gaussian distribution xff09 xff0c 是一个在数学 物理及工程等领域都非常重要的概率分布 xff0c 在统计学
  • OpenCV图像拼接和图像融合技术

    转自 xff1a https www cnblogs com skyfsm p 7411961 html 图像拼接在实际的应用场景很广 xff0c 比如无人机航拍 xff0c 遥感图像等等 xff0c 图像拼接是进一步做图像理解基础步骤 x
  • 如何将pandas.dataframe的数据写入到文件中

    导入实验常用的python包 如图2所示 import pandas as pd pandas用来做数据处理 import numpy as np numpy用来做高维度矩阵运算 import matplotlib pyplot as pl
  • 八度音阶和频率的关系

    转载 xff1a http www cnblogs com cute archive 2013 02 28 2937222 html 八度音阶和频率的关系 Frequency in hertz semitones above or belo
  • 解决MATLAB不能设置为.m文件默认打开方式

    转载 xff1a https blog csdn net yujiaerzong article details 77624167 1 将下面代码复制保存为 associateFiles m 文件 2 在MATLAB中运行 associat
  • python中的wx模块

    转载 xff1a http www cnblogs com fnng archive 2013 05 23 3094033 html wx包中的方法都是以大写字母开头的 xff0c 而这和Python的习惯是相反的 本节介绍如何创建pyth
  • Postman安装(汉化Postman)

    Postman安装 汉化Postman 一 下载Postman 下载地址 xff1a https www postman com downloads 二 下载汉化包 下载地址 xff1a https github com hlmd Post
  • linux下vscode调试C++

    linux下vscode调试C 43 43 1 在CMakelists中设置编译为Debug模式 xff0c 增加需要生成的可执行程序 set CMAKE BUILD TYPE DEBUG add executable hello main
  • char数组和指针问题

    这个问题是C 43 43 基础问题中相当折腾人的一个 xff0c 死记硬背解决不了根本问题 xff0c 记住还是要忘 xff0c 需要仔细研究其本质 这两种方式就是数组和指针的方式 xff1a span class hljs keyword
  • 找工作笔试面试那些事儿(13)---操作系统常考知识点总结

    上一节对数据库的知识做了一个小总结 xff0c 实际找工作过程中 xff0c 因为公司或单位侧重点不一样 xff0c 考察的知识也是不尽相同的 xff0c 但是作为计算机类的学生 xff0c 操作系统的知识也是必不可少的 xff0c 去年参
  • pnp算法

    pnp算法是解决什么问题的 xff1f PnP xff08 Perspective n Point xff09 是求解 3D 到 2D 点对运动的方法 它描述了当我们知道 n 个 3D 空间点以及它们的投影位置时 xff0c 如何估计相机所
  • Ubuntu 简单的视频剪辑方法

    视频剪辑主要分为两种 xff1a 1 纯粹的录屏 xff0c 不增加停顿 文字说明等 2 在关键位置停顿 xff0c 并配以文字说明 xff1b 针对第二种情况 xff0c 可以把要处理的视频保存成图片 xff0c 然后再利用opencv进
  • [cartographer] 9. proto配置文件读取

    目录 1 proto文件 2 lua配置文件 3 代码 1 xff09 读取lua文件 2 xff09 赋值给proto options 获取proto参数值有两种方式 xff1a 1 xff09 lua文件 2 xff09 通过servi
  • [毫米波雷达建图系列]2. map generator node

    目的 xff1a 利用点云 xff0c 生成概率栅格地图 xff0c 并保存成 pgm 图片格式 主要的函数有三个 xff1a void GetGridMap 注册地图 SaveMap 可以保存成 pgm图片 或者 pcd 格式 xff08
  • 常见的旋转插值

    1 四元数slerp插值 slerp 插值的原理 xff1a 这里 slerp 插值的工程实现 xff1a eigen 的 slerp 函数 Eigen Quaterniond q 61 q0 slerp x0 q1 2 轴角插值 已知 R
  • docker限制cpu使用率

    start docker docker run itd name CONTAINER NAME privileged network host ipc 61 host hostname CONTAINER NAME env COLORFGB
  • Visual Studio + Opencv配置

    目录 Opencv安装 环境变量配置Visual Studio 库的两种配置 本文使用操作系统为Windows10 xff0c 仅适用于windows环境Visual Studio编译器上的 Opencv开发配置 Opencv所有平台通用的
  • jupyter notebook import torch报错

    create pytorch env 进入 pytorch 环境 conda activate pytorch name 安装jupyter notebook 安装ipykernel 用于安装kernel conda install ipy
  • 分享本地文件给其他人访问

    在想分享的文件夹下执行 python3 m http server 9999 https blog csdn net inter peng article details 121332985 为了保证不用每次都自己手动输入上述命令 xff0
  • C++ 文件读写fopen_s/fopen

    最好使用fopen s xff0c 使用fopen提示 not safe xff0c 二者区别如下 xff1a 1 fopen s的安全是在于比函数fopen多了溢出检测 2 在使用上 xff0c 函数fopen的返回值是文件指针 xff0