im钱包下载后删除|iostream stream error
im钱包下载后删除|iostream stream error
flunet中iostream stream error - 知乎
flunet中iostream stream error - 知乎切换模式写文章登录/注册flunet中iostream stream errorfire默默无闻的地球人"iostream stream error"在Fluent中通常表示在读取或写入文件时发生了错误。这种错误可能是由以下原因引起的:1.文件路径错误:确保您已经指定了正确的文件路径。如果文件路径不正确,则无法读取或写入文件。2.文件权限问题:在某些情况下,您可能没有足够的权限来读取或写入特定的文件。请检查文件权限并确保您有足够的权限来访问文件。3.文件损坏:文件损坏可能会导致读取或写入文件时出现错误。请确保您要读取或写入的文件没有受到任何损坏。4.其他错误:还可能由于其他原因导致"iostream stream error"错误。您可以尝试在其他计算机上尝试读取或写入相同的文件以确定是否出现类似的错误,或者与FLUENT的技术支持团队联系以获取更多帮助。发布于 2023-06-06 19:23・IP 属地四川fluent赞同添加评论分享喜欢收藏申请
小白求助【fluent吧】_百度贴吧
小白求助【fluent吧】_百度贴吧
网页资讯视频图片知道文库贴吧地图采购 进入贴吧全吧搜索吧内搜索搜贴搜人进吧搜标签 日一二三四五六 签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力! 本吧签到人数:0 一键签到可签7级以上的吧50个一键签到 本月漏签0次!0成为超级会员,赠送8张补签卡如何使用?点击日历上漏签日期,即可进行补签。连续签到:天 累计签到:天0超级会员单次开通12个月以上,赠送连续签到卡3张使用连续签到卡 03月08日漏签0天 fluent吧 关注:16,698贴子:86,271
看贴
图片
吧主推荐
游戏
19回复贴,共1页
<返回fluent吧>0< 加载中... 小白求助 只看楼主收藏回复
贴吧用户_54R71JD
1L喂熊1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 fluentError: Unable to open C:\Users\Administrator\Desktop\fluent-19.cas.h5 for writing.: iostream stream errorError Object: #f大佬们,这个错误怎么解决啊 送TA礼物
IP属地:陕西来自iPhone客户端1楼2021-06-17 22:13回复
贴吧用户_5GaA67P
1L喂熊1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 你这个问题解决了没,我也出现了 IP属地:甘肃2楼2021-10-09 12:55回复收起回复
馀月桑
1L喂熊1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 我也遇到了,大佬救命啊!!!!! IP属地:黑龙江3楼2021-10-13 01:19回复收起回复
机械如意大师人
1L喂熊1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 保存路径不对 IP属地:广东4楼2021-12-27 15:37回复(2)收起回复
龙猫猫儿啊
1L喂熊1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 auto save 里面更换路径 IP属地:辽宁7楼2022-05-31 16:10回复(4)收起回复
她说666789
1L喂熊1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 大家解决了吗这个问题 IP属地:北京来自Android客户端10楼2022-11-10 11:16回复(3)收起回复
开心66616
1L喂熊1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 请问楼主解决了嘛,我也遇到这个问题了 IP属地:山东来自iPhone客户端11楼2022-12-07 01:49回复收起回复
扫烟囱的男人
鸭梨山大11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 翻译一下就知道了 IP属地:安徽来自iPhone客户端12楼2022-12-07 07:53回复收起回复
Nwws111
自带板凳3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 怎么解决啊啊Error: Unable to open F:/jiedan/2023/4/4-12/cas/fluent_1-18-20.000000.dat.h5 for writing.: iostream stream error IP属地:青海13楼2023-04-24 15:16回复收起回复 登录百度账号扫二维码下载贴吧客户端下载贴吧APP看高清直播、视频! 贴吧热议榜 1《龙珠》作者鸟山明去世1712760 2三八妇女节送什么给妈妈好1711725 3盘点所有小丑牌,你来打分1254316 4大学我有四不上998460 5崩坏星穹铁道v4总结730938 6国足31人大名单699950 7如何评价沙丘2的路人口碑502488 8海贼王作者发文悼念鸟山明370691 9库里受伤272184 10瑞典正式加入北约217287 贴吧页面意见反馈违规贴吧举报反馈通道贴吧违规信息处理公示
19回复贴,共1页
<返回fluent吧 发表回复 发贴请遵守贴吧协议及“七条底线”贴吧投诉 停止浮动 内 容: 使用签名档 查看全部 发 表 保存至快速回贴 退 出 ©2024 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示
<#最全面# VS 出现 无法打开 iostream 的错误_无法打开 源 文件 "iostream". 请运行“选择 intellisense 配置...”命令-CSDN博客
>#最全面# VS 出现 无法打开 iostream 的错误_无法打开 源 文件 "iostream". 请运行“选择 intellisense 配置...”命令-CSDN博客
#最全面# VS 出现 无法打开 iostream 的错误
最新推荐文章于 2022-03-18 02:43:32 发布
energy_百分百
最新推荐文章于 2022-03-18 02:43:32 发布
阅读量2.3w
收藏
15
点赞数
11
分类专栏:
c++混合编程
VS配置问题
环境配置
文章标签:
visual studio
c++
windows
iostream
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/lch551218/article/details/104357311
版权
环境配置
同时被 3 个专栏收录
17 篇文章
0 订阅
订阅专栏
c++混合编程
4 篇文章
0 订阅
订阅专栏
VS配置问题
3 篇文章
2 订阅
订阅专栏
对于使用vs运行项目时,出现无法打开 iostream 的错误,网上一般有这三种方法:
方法一
→工具 → 导入和导出设置 → 重置所有设置 → 下一步 → 选择“是否保存当前设置(这个我选择的是直接重置)”, →下一步 → 选择“要重置的开发语言(如,Visual C++开发设置)” → 完成
方法二
如果在VS2010以后的版本中使用 #include “iostream” 的方式引入 iostream 模块,可以使用 如下语句替换 #include “iostream” 语句解决此问题。
#include
#include
using namespace std;
注: 这个头文件是VC6.0带的文件,在VS2010里面没有这个头文件,自然就不能直接include。
方法三
如果你的电脑之前卸载过相同版本的vs,且两次vs安装的目录不同,那么出现此问题很可能是因为之前的vs配置文件没有卸载干净,vs按之前的路径去加载iostream模块,而之前的vs文件已经卸载,故出现此错误。vs的完全卸载请参考我的这篇文章→VS完全卸载教程
优惠劵
energy_百分百
关注
关注
11
点赞
踩
15
收藏
觉得还不错?
一键收藏
打赏
知道了
2
评论
#最全面# VS 出现 无法打开 iostream 的错误
对于使用vs运行项目时,出现无法打开 iostream 的错误,网上一般有这三种方法:方法一→工具→ 导入和导出设置→ 重置所有设置→ 下一步→ 选择“是否保存当前设置(这个我选择的是直接重置)”,→下一步→ 选择“要重置的开发语言(如,Visual C++开发设置)”→ 完成方法二如果在VS2010以后的版本中使用 #include “iostream” 的方式引入 ios...
复制链接
扫一扫
专栏目录
VS Code C/C++环境配置教程(无法打开源文件“xxxxxx.h” 或者 检测到 #include 错误,请更新includePath) (POSIX API)
08-18
主要介绍了VS Code C/C++环境配置教程(无法打开源文件“xxxxxx.h” 或者 检测到 #include 错误。请更新includePath) (POSIX API),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
VS(visual studio)遇到无法打开iostream的解决方案
devxzh
12-08
3万+
近期配置一些项目时,莫名其妙的连本身iostream头文件都无法打开了
最后尝试重置VS C++,并成功解决了该问题。
我的版本是vs2013,方式如下
Tools -> Import and Export -> Reset all -> ..
工具 → 导入和导出设置 → 重置所有设置 → 下一步 →
选择“是否保存当前设置(这个我选择的是直接重置)”,
下一步 → 选择“要重
2 条评论
您还未登录,请先
登录
后发表或查看评论
vscode 如何配置c/c++环境
10-06
vscode 如何配置环境,有可能有点繁琐 也有可能会有点错误,如有发现错误,请回复立刻更正
VS2013无法打开源文件iostream
wangguangya_的博客
05-19
6107
Error:VS2013无法打开源文件iostream,导致后续的一系列关键字如cin、cout等无法使用,如下图所示。
My Solution:打开工程—>点击属性管理器—>打开属性表,点击VC++目录—>1:可执行包含目录;add:D:\VS2013\VC\bin
—>2:包含目录;add:D:\VS2013\VC\include
—>3:库目录;add:C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib
#include"iostream.h"
10-29
#include"iostream.h"
#include"stdlib.h"
class memory;
class memorynode
{
public:
friend class memory;
memorynode(int add,int s);//初始内存空间
memorynode(char n,int s);//分区
vscode配置c/c++环境文件
05-31
vscode配置c/c++环境文件
VS打开程序,导入lib和include步骤和无法打开源文件 string
娱乐至上的博客
02-23
5429
当需要将程序压缩后,发到另一台电脑打开程序时,记录一下需要进行的步骤
导入程序中包括的lib库和include文件夹
① 从笔记本可以运行的程序中,压缩发到台式机,需要更改的地方如下:
② 将VS设置成 x86 和 debug
① VC++目录 -》 “包含目录”和库目录分别填入 include 和lib 所在文件夹
② C/C++ 常规 -》 附加包含目录
③预处理器 -> 预处理器定义 输入 _CRT_SECURE_NO_WARNINGS
④链接器-》常规-》附加库目录,加入lib所在文件
重装VS后无法打开iostream文件解决办法
JoliceYu的技术博客
05-08
1万+
这几天重装了VS2012编译器,重装后发现了一个问题,之前用VS2012创建的可以运行的工程,现在打开运行都显示iostream库打不开,以及一些基本的c++的基础库都没法打开,后来发现是因为自己重装了VS的时候,重装的VS的路径和重装前的不一样所致。解决办法
办法1:再次重装VS,注意这次重装的路径要和之前的第一次的路径相同。
办法2:将之前的创建的工程的源文件都拷贝,在重装后的VS下创建工程
CUDA文件中无法打开源文件<stdio.h>
LLABVIEW的博客
03-18
6384
问题
注意!!!是在创建CUDA的文件中显示无法打开源文件
CUDA 版本:10.1
VS 版本:2017
解决方案
方案1.按照从新设置包含目录的方法,成功。附上网上大神链接
方案2.无视错误试着运行一下,竟然可以运行。
说明此种问题很有可能是内部某些设置为刷新缘故,那就简单了!
1.打开项目属性
2.随便找一个能选择 “是\否” 的项目,将 “是” 改为 “否” 或者将 “否” 改成 “是” ,点击右下角 “应用” -> ”确定” 。
3.这时能看到一切已经正
VSCode检测到include错误,无法打开源文件
热门推荐
qq_53653262的博客
10-05
4万+
有时候我们的vscode会出现无法打开源文件的情况,在这里我将展示如何配置vscode和解决这个问题
配置C++环境
前言
一、软件安装
二、配置过程
1.配置环境变量
2.配置vscodeC/C++环境
总结
前言
有很多新人或者老手出现了这个问题,但是网上很多解决方法并不方便快捷,本人经过反复尝试终于找到一种快捷方法。
一、软件安装
首先下载VSCode,官网上就有
然后下载和安装MinGW,下载地址:https://osdn.net/projects.
IOStream
02-21
IOStream
vc++2008编译不了#include头文件
05-23
vc++2008编译不了#include头文件
#include
#include
using namespace std;九九乘法表
03-07
第一次编译
iostream与iostream.h的区别详细解析
09-05
以下是对C++中iostream与iostream.h的区别进行了详细的分析介绍,需要的朋友可以过来参考下
Android IOStream实例操作源代码.rar
07-10
Android IOStream实例操作源代码,针对IO流操作与学习android的初级编程者共勉。
#include
06-08
#include
C语言头文件 IOSTREAM.H
06-12
C语言头文件 IOSTREAM.HC语言头文件 IOSTREAM.HC语言头文件 IOSTREAM.HC语言头文件 IOSTREAM.HC语言头文件 IOSTREAM.HC语言头文件 IOSTREAM.HC语言头文件 IOSTREAM.HC语言头文件 IOSTREAM.HC语言头文件 IOSTREAM.HC...
C语言头文件 IOSTREAM
06-12
C语言头文件 IOSTREAMC语言头文件 IOSTREAMC语言头文件 IOSTREAMC语言头文件 IOSTREAMC语言头文件 IOSTREAMC语言头文件 IOSTREAMC语言头文件 IOSTREAMC语言头文件 IOSTREAMC语言头文件 IOSTREAMC语言头文件 IOSTREAM...
vs无法打开源文件iostream
最新发布
08-29
当在Visual Studio中打开工程时出现无法打开源文件"iostream"的错误提示时,可以尝试以下解决方法:
1. 确保已经正确安装了C++编译器和对应的标准库。在Visual Studio安装时,可以选择安装C++开发工作负载,以确保安装了所需的组件。
2. 检查项目的包含目录设置是否正确。在Visual Studio中,可以通过右键点击项目 -> 属性 -> C/C++ -> 常规 -> 附加包含目录来查看和修改包含目录设置。确保包含目录中包含了C++标准库的路径,一般为 `
3. 确保工程中的文件路径正确。在Visual Studio中重新打开工程时,应该直接点击工程文件(如Test.vcxproj),而不是具体的源文件(如.cpp文件)。点击工程文件会自动加载工程配置和相关文件,以确保源文件能够正确引用到。
通过以上方法,应该能够解决无法打开源文件"iostream"的问题。如果问题仍然存在,可以尝试重新安装Visual Studio或者更新版本。123
#### 引用[.reference_title]
- *1* *2* *3* [visual studio使用问题:出现E169无法打开源文件“iostream”“cmath““cstring“等等](https://blog.csdn.net/Mr_zhang1911116/article/details/123566577)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
“相关推荐”对你有帮助么?
非常没帮助
没帮助
一般
有帮助
非常有帮助
提交
energy_百分百
CSDN认证博客专家
CSDN认证企业博客
码龄13年
企业员工
195
原创
1万+
周排名
183万+
总排名
93万+
访问
等级
9052
积分
184
粉丝
814
获赞
231
评论
2052
收藏
私信
关注
热门文章
#从源头解决# 自定义头文件在VS上出现“无法打开源文件“XX.h“的问题
45656
通俗理解 什么是量纲
45082
#最全面# VS 出现 无法打开 iostream 的错误
23474
linux下启动 nginx 提示 ‘Welcome to CentOS...’
18704
#从根本解决# uwsgi --ini uwsgi.ini 无法绑定端口
17601
分类专栏
概率基础
12篇
机器学习
72篇
NLP
23篇
深度学习
31篇
Pytorch
3篇
数据结构
4篇
集成学习
1篇
Pyqt5
10篇
环境配置
17篇
python编程
65篇
linux编程
24篇
django
19篇
html
10篇
opencv
2篇
Pycharm
5篇
爬虫
4篇
成果分享
1篇
c++混合编程
4篇
Python语法糖
2篇
VS配置问题
3篇
c++
6篇
TensorFlow
24篇
经典算法
1篇
网络编程
5篇
MongoDB
1篇
云服务器
9篇
eeglab
1篇
matlab算法
2篇
matlab编程
2篇
mysql
5篇
nginx
9篇
javascript
4篇
Git
8篇
Github
6篇
Redis
2篇
docker
4篇
速查资料
5篇
多线程
1篇
pipenv
2篇
域名设置
1篇
个人博客
1篇
远程仓库
1篇
vscode
1篇
cell
1篇
元胞
1篇
最新评论
通俗理解 Adam 优化器
林声声:
你好,请问公式来源于哪里呀,有链接吗
#根本上解决# 使用 Pyinstaller 打包后 出现 lib not found 错误
Matcha芥末酱:
其实没有解决问题,很难给你一个赞
#深度解析# 深度学习中的SGD、BGD、MBGD、Momentum、NAG、Adagrad、Adadelta,RMSprop、Adam优化器
丝诺温忒:
能不能注释下公式里符号都是啥啊?
#根源解决# pyqt5 打包后出现 Could not find QtWebEngineProcess.exe 错误
阿凉0702:
请问QtWebEngineProcess.exe 有办法在中文路径下调用吗,感觉打包的时候还要限制非中文也挺麻烦的找了很久好像没有什么好办法
#超详细# 完全卸载 vs
ReverieX:
1519393154@qq.com
多谢大佬提供链接!
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
提交
最新文章
对 Relu激活函数导致 [ 神经元死亡 ] 的理解
#深入理解# 线性回归中的“线性”、以及最小二乘和梯度下降的理解
#浅谈# 构造哈夫曼树
2021年85篇
2020年101篇
2019年10篇
目录
目录
分类专栏
概率基础
12篇
机器学习
72篇
NLP
23篇
深度学习
31篇
Pytorch
3篇
数据结构
4篇
集成学习
1篇
Pyqt5
10篇
环境配置
17篇
python编程
65篇
linux编程
24篇
django
19篇
html
10篇
opencv
2篇
Pycharm
5篇
爬虫
4篇
成果分享
1篇
c++混合编程
4篇
Python语法糖
2篇
VS配置问题
3篇
c++
6篇
TensorFlow
24篇
经典算法
1篇
网络编程
5篇
MongoDB
1篇
云服务器
9篇
eeglab
1篇
matlab算法
2篇
matlab编程
2篇
mysql
5篇
nginx
9篇
javascript
4篇
Git
8篇
Github
6篇
Redis
2篇
docker
4篇
速查资料
5篇
多线程
1篇
pipenv
2篇
域名设置
1篇
个人博客
1篇
远程仓库
1篇
vscode
1篇
cell
1篇
元胞
1篇
目录
评论 2
被折叠的 条评论
为什么被折叠?
到【灌水乐园】发言
查看更多评论
添加红包
祝福语
请填写红包祝福语或标题
红包数量
个
红包个数最小为10个
红包总金额
元
红包金额最低5元
余额支付
当前余额3.43元
前往充值 >
需支付:10.00元
取消
确定
下一步
知道了
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝
规则
hope_wisdom 发出的红包
打赏作者
energy_百分百
你的鼓励将是我创作的最大动力
¥1
¥2
¥4
¥6
¥10
¥20
扫码支付:¥1
获取中
扫码支付
您的余额不足,请更换扫码支付或充值
打赏作者
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额
0
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。
余额充值
关于C ++:ifstream打开失败时如何获取错误消息 | 码农家园
关于C ++:ifstream打开失败时如何获取错误消息 | 码农家园
码农家园
关闭
导航
关于C ++:ifstream打开失败时如何获取错误消息
c++error-handlingstdstream
How to get error message when ifstream open fails
12345678ifstream f;
f.open(fileName);
if ( f.fail() )
{
// I need error message here, like"File not found" etc. -
// the reason of the failure
}
如何获取错误信息作为字符串?
相关讨论
C ++ ifstream错误检查的可能重复项
C ++流打开失败时,您能否获得特定的错误条件?
@Alex Farber:当然可以。 cerr <<"Error code:" << strerror(errno); Get some info as to why似乎与该问题有关。
@MatthieuRouget:检查我发布的可能重复项-看来这是仅由gcc实现的非标准行为。
@MatthieuRouget:strerror(errno)有效。 将其发布为答案,我会接受。
每个失败的系统调用都会更新errno值。
因此,您可以通过使用类似以下内容的信息来进一步了解ifstream打开失败时的情况:
1cerr <<"Error:" << strerror(errno);
但是,由于每个系统调用都会更新全局errno值,所以如果另一个系统调用在执行f.open和使用errno之间触发错误,则您可能在多线程应用程序中遇到问题。
在具有POSIX标准的系统上:
errno is thread-local; setting it in one thread does not affect its
value in any other thread.
编辑(感谢Arne Mertz和其他人的评论):
e.what()起初似乎是C ++惯用的更正确的实现方式,但是此函数返回的字符串与实现有关,并且(至少在G ++的libstdc ++中)此字符串没有有关错误原因的有用信息。 ...
相关讨论
e.what()似乎没有提供太多信息,请参阅我的答案的更新。
errno在现代操作系统上使用线程本地存储。但是,不能保证在出现errno后fstream函数不会破坏errno。基本功能可能根本没有设置errno(在Linux或Win32上直接系统调用)。这不适用于许多现实世界的实现。
在MSVC中,e.what()总是打印相同的消息" iostream stream error"
warning C4996: strerror: This function or variable may be unsafe. Consider using strerror_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. 1> C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\include\\string.h(168) : see declaration of strerror
@sergiol这些都是谎言。忽略它们或禁用警告。
您可以尝试让流在失败时引发异常:
123456789101112std::ifstream f;
//prepare f to throw if failbit gets set
std::ios_base::iostate exceptionMask = f.exceptions() | std::ios::failbit;
f.exceptions(exceptionMask);
try {
f.open(fileName);
}
catch (std::ios_base::failure& e) {
std::cerr << e.what() << '\
';
}
但是,e.what()似乎并没有太大帮助:
我在Embarcadero RAD Studio 2010 Win7上尝试过,它给出" ios_base :: failbit set",而strerror(errno)给出"没有这样的文件或目录"。
在Ubuntu 13.04上,gcc 4.7.3异常显示为" basic_ios :: clear"(感谢Arne)
如果e.what()对您不起作用(由于该错误未标准化,我不知道它会告诉您什么错误),请尝试使用std::make_error_condition(仅C ++ 11):
12345678catch (std::ios_base::failure& e) {
if ( e.code() == std::make_error_condition(std::io_errc::stream) )
std::cerr <<"Stream error!\
";
else
std::cerr <<"Unknown failure opening file.\
";
}
相关讨论
谢谢。我没有对此进行测试,因为在评论中发布的strerror(errno)可以正常工作,并且使用起来非常简单。我认为e.what将起作用,因为errno起作用。
然后在Matthieus答案中看到有关多线程的注释-我的猜测是,e.what()将是strerror返回的内容,以线程安全的方式。两者都可能取决于平台。
@AlexFarber:我认为Arnes的回答比我的要好。我的解决方案不是解决问题的C ++方法。但是,我找不到有关C ++库如何将系统调用错误映射到exception.what()的官方信息。可能是深入研究libstdc ++源代码的好机会:-)
我尝试了一下:尝试打开一个不存在的文件,并且异常消息显示为basic_ios::clear,除此之外没有其他内容。这真的没有帮助。那就是为什么我没有发布;)
@arne wich平台,编译器,操作系统?
@MatthieuRouget看到我对答案的更新-我更喜欢我正在使用的平台上的strerror。 (尽管我更喜欢使用另一个编译器,TBH)
@ArneMertz:amd64,gcc版本4.7.3(Ubuntu / Linaro 4.7.3-1ubuntu1),Lubuntu 13.04,已安装所有最新更新。
@全部:好有趣。可悲的是,虽然我的答案似乎是不错的答案,但看起来却很"老派"。更新了我的答案。附带说明一下,在libstdc ++源代码中ios_base::failure构造函数的调用中,除了静态字符串,我什么都没有看到。(即,没有引用看起来像errno的东西)
在@Arne Mertz的答案之后,从C ++ 11开始,std::ios_base::failure从system_error继承(请参阅http://www.cplusplus.com/reference/ios/ios_ios/failure/),其中包含错误代码和strerror(errno)将返回的消息。
12345678910std::ifstream f;
// Set exceptions to be thrown on failure
f.exceptions(std::ifstream::failbit | std::ifstream::badbit);
try {
f.open(fileName);
} catch (std::system_error& e) {
std::cerr << e.code().message() << std::endl;
}
如果fileName不存在,则打印No such file or directory.。
相关讨论
对我而言,在MSVC 2015中仅打印iostream stream error。
对我来说,GCC 6.3也会打印iostream error。您在哪个编译器上对此进行了测试?是否有任何编译器实际上提供了用户可读的失败原因?
macOS上的libc ++上的Clang 6:unspecified iostream_category error。
MacOS 10.14.x上的Xcode 10.2.1(Clang)/ libc ++(C ++ 17):也是"未指定的iostream_category错误"。 strerror(errno)SEEMS是获得此权利的唯一方法。我想我可以首先通过询问std :: filesystem是否path.exists()并检查返回的std :: error_code来捕获它。
您还可以抛出std::system_error,如下面的测试代码所示。与f.exception(...)相比,此方法似乎产生了更具可读性的输出。
1234567891011121314151617181920212223#include
#include
#include
void process(const std::string& fileName) {
std::ifstream f;
f.open(fileName);
// after open, check f and throw std::system_error with the errno
if (!f)
throw std::system_error(errno, std::system_category(),"failed to open"+fileName);
std::clog <<"opened" << fileName << std::endl;
}
int main(int argc, char* argv[]) {
try {
process(argv[1]);
} catch (const std::system_error& e) {
std::clog << e.what() <<" (" << e.code() <<")" << std::endl;
}
return 0;
}
示例输出(带c声的Ubuntu):
12345678$ ./test /root/.profile
failed to open /root/.profile: Permission denied (system:13)
$ ./test missing.txt
failed to open missing.txt: No such file or directory (system:2)
$ ./test ./test
opened ./test
$ ./test $(printf '%0999x')
failed to open 000...000: File name too long (system:36)
Copyright © 码农家园 联系:[email protected]
请教一个关于Dev C++中iostream头文件的问题? - 知乎
请教一个关于Dev C++中iostream头文件的问题? - 知乎首页知乎知学堂发现等你来答切换模式登录/注册C(编程语言)C++C / C++C 程序设计Dev-C++请教一个关于Dev C++中iostream头文件的问题?如图,这个问题已经出现好几次了,按csdn的说法是没有敲命名空间std那一行,可是的确已经敲了啊。 然后我的解决方法每次都是卸载dev c++,然后重…显示全部 关注者3被浏览5,293关注问题写回答邀请回答好问题添加评论分享3 个回答默认排序坚果小强电气专业的代码爱好者 关注报错出在iostream那个文件中,你下次再出现这种问题保留第一次报错的代码,把代码和头文件报错的地方截图补充到问题里吧。另外再出现这种问题把string改成cstring试试?怀疑string和iostream互相包含。非计算机专业,有问题请指正,为学习而来。编辑于 2021-08-14 15:56赞同1 条评论分享收藏喜欢收起匿名用户这个问题因为奇怪而很有意思,你可以这么做:a. 不能用时,把 dev-cpp 目录,以及 mingw 目录,拷贝一份;b. 重装dev-cpp,比较一下新旧两个目录中哪些文件被修改了,修改了啥记得告诉我答案,好奇发布于 2021-08-13 09:49赞同2 条评论分享收藏喜欢收起
"error in IOstream" -- CFD Online Discussion Forums
"error in IOstream" -- CFD Online Discussion Forums
[Sponsors]
Home
News
Index
Post News
Subscribe/Unsubscribe
Forums
Main CFD Forum
System Analysis
Structural Mechanics
Electromagnetics
CFD Freelancers
Hardware Forum
Lounge
Software User Forums
ANSYS
CFX
FLUENT
Meshing & Geometry
Autodesk
AVL FIRE
COMSOL
CONVERGE
Fidelity CFD
FloEFD & FloTHERM
FLOW-3D
OpenFOAM
News & Announcements
Installation
Meshing
Pre-Processing
Solving
Post-Processing
Programming
Verification & Validation
Community Contributions
Journal
Bugs
Phoenics
REEF3D
News & Announcements
Siemens
STAR-CCM+
STAR-CD
SU2
News & Announcements
Installation
Shape Design
Pre-processors
ANSA
enGrid
GridPro
Pointwise
Post-Processors
EnSight
FieldView
ParaView
Tecplot
Special Topics
Mesh Generation
Visualization
CFD Online Community
Site News
Site Help & Discussions
CFD-Wiki
Wiki
Introduction
Recent Changes
Reference Section
Fluid Dynamics
Turbulence Modeling
Numerical Methods
Meshing
Special Topics
Aero-Acoustics
Combustion
Parallel Computing
Turbulence
Application Areas
Aerospace
Automotive
Turbomachinery
Best Practice Guides
Automotive CFD
Turbomachiney CFD
Heat Transfer CFD
Validation Cases
Codes
Source Code Archive
FAQ's
Ansys
CHAM
CONVERGE
Fluent
Metaconp
MeteoDyn
Siemens
History of CFD
About CFD-Wiki
Help
FAQ
Getting Started
Community Portal
Donate Texts
Donated Texts
Links
What's New
Introduction
Modeling & Numerics
Turbulence
Combustion
Discretization Schemes
Solvers
Multigrid Methods
Finite Element Methods
Cartesian Methods / AMR
Numerial Analysis
Mesh Generation
General Resources
Selected Projects
Companies
Programming & Dev.
Data Formats
Software Libraries
Numerical Software
Parallel Computing
General Sites
Software
Fluid Dynamics
Mesh Generation
Visualization
Commercial CFD Codes
Hardware
Benchmarks
News and Reviews
Hardware Vendors
Clouds
Clusters
GPGPU
Misc
References
Validation Cases
Airfoils
Material Properties
Glossaries
Finding Documents
Preprints Online
Papers & Reports
Books
Journals
Publishers
Online Tools
Unit Converters
Calculators
y+ Estimation
Compressible Flow
Heat Transfer
Airfoil Generators
Simple Cases
Combustion
Cycles & Processes
Online Books & Guides
CFD Introductions
Books
Best Practice Guidelines
Fluid & Aero Dynamics
Seminars
Encyclopedias
Social Media
Discussion Forums
Blogs
YouTube
Podcasts
Usenet Newsgroups
Mailing Lists
Chats
News
Education
CFD Programmes
Online Labs
Online Courses
Course Material
Jobs
CFD Job Resources
Companies & Orgs.
General Resources
Events
Event Calendars
Specific Organizations
Vendor Events Lists
Misc
Pictures and Movies
Fun
Links to Links
Suggest New Link
About this Section
Jobs
Post Job Ad
List All Jobs
List Jobs by Type
Job in Industry (20)
Job in Academia (44)
PostDoc Position (31)
PhD Studentship (63)
Internship (3)
Diploma Work (2)
List Jobs by Location
Asia
China (16)
India (14)
Israel (4)
Malaysia (2)
South Korea (2)
Taiwan (2)
Thailand (1)
Turkey (1)
Europe
Austria (6)
Belgium (3)
Czech Republic (4)
France (19)
Germany (16)
Ireland (1)
Netherlands (6)
Spain (1)
Sweden (2)
United Kingdom (15)
North America
Canada (3)
United States (41)
Oceania
Australia (1)
New Zealand (1)
South America
Brazil (1)
Chile (1)
Search Job Ads
Events
Post New Event
List All Events
List Events by Type
Conferences (5)
Online Events (5)
List Events by Location
Asia
India (2)
Europe
Germany (2)
Montenegro (1)
North America
United States (4)
Oceania
New Zealand (1)
Tools
RPN Calculator
Scientific Calculator
Unit Conversion
Y+ Estimation
Turbulence Properties
Feeds
News
Blogs
Vendors
Jobs
Journals
About
About CFD Online
Privacy Policy
Contacts & Feedback
Web Server Statistics
List of Sponsors
Advertising on this Site
Search
Home > Forums
> Software User Forums
> OpenFOAM
> OpenFOAM Running, Solving & CFD
Blogs
Recent Entries
Best Entries
Best Blogs
Blog List
Search Blogs
"error in IOstream"
User Name
Remember Me
Password
Register
Blogs
Community
New Posts
Updated Threads
Search
New Today
All Forums
Main CFD Forum
ANSYS - CFX
ANSYS - FLUENT
ANSYS - Meshing
Siemens
OpenFOAM
SU2
Last Week
All Forums
Main CFD Forum
ANSYS - CFX
ANSYS - FLUENT
ANSYS - Meshing
Siemens
OpenFOAM
SU2
Updated Today
All Forums
Main CFD Forum
ANSYS - CFX
ANSYS - FLUENT
ANSYS - Meshing
Siemens
OpenFOAM
SU2
Last Week
All Forums
Main CFD Forum
ANSYS - CFX
ANSYS - FLUENT
ANSYS - Meshing
Siemens
OpenFOAM
SU2
Community Links
Members List
Search Forums
Show Threads
Show Posts
Tag Search
Advanced Search
Search Blogs
Tag Search
Advanced Search
Go to Page...
2Likes
Top
All
This Page
1
Post By babakflame
1
Post By babakflame
LinkBack
Thread Tools
Search this Thread
Display Modes
November 6, 2017, 19:07
"error in IOstream"
#1
babakflame
Senior Member
Bobby
Join Date: Oct 2012
Location: Michigan
Posts: 454
Rep Power: 15
Dear Fellows
I have been running a case for a long time on a cluster. After a while and after of multiple time step saving, once I wanted to continue the simulation, this error popped up:
Code:
error in IOstream "/home/babak/Ue_40_Final_copy/constant/polyMesh/owner" for operation operator>>(Istream&, List
file: /home/babak/Ue_40_Final_copy/constant/polyMesh/owner at line 15268734.
From function IOstream::fatalCheck(const char*) const
in file db/IOstreams/IOstreams/IOstream.C at line 114.
FOAM exiting
I know that this error might be due to disk lackage of free space. However, I have sufficient space. I can not use any commands c.f.
blockMesh, renumberMesh or etc.
Even, when I try to decompose from the previous saved time steps (any time step). It reverts the same error. It seems that suddenly lost this case for no clear reason.
Can sb hint me what really happened here?
Regards
kai_sh99 likes this.
November 7, 2017, 13:19
#2
babakflame
Senior Member
Bobby
Join Date: Oct 2012
Location: Michigan
Posts: 454
Rep Power: 15
Dear All,
I am answering myself, It might be useful for some people.
In my case, I realized that actually the simulation has been terminated in the middle of
Code:
renumberMesh -overwrite
command. As a matter of fact, as the error says, the mesh is corrupted. I replaced the constant folder with another sound one.
I was able to resume the simulation from the last saved time step.
Kavi likes this.
«
Previous Thread
|
Next Thread
»
Thread Tools
Show Printable Version
Display Modes
Linear Mode
Switch to Hybrid Mode
Switch to Threaded Mode
Search this Thread
Advanced Search
Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
BB code is On
Smilies are On
[IMG] code is On
HTML code is OffTrackbacks are Off
Pingbacks are On
Refbacks are On
Forum Rules
All times are GMT -4. The time now is 06:54.
Contact Us -
CFD Online -
Privacy Statement -
Top
© CFD Online
LinkBack
LinkBack URL
About LinkBacks
Bookmark & Share
Digg this Thread! Add Thread to del.icio.us Bookmark in Technorati Tweet this thread
iostream stream error fluent-掘金
iostream stream error fluent-掘金
首页 首页
沸点
课程
直播
活动
竞赛
商城
APP
插件 搜索历史
清空
创作者中心
写文章 发沸点 写笔记 写代码 草稿箱 创作灵感
查看更多
会员
登录
注册
iostream stream error fluent 在 C++ 中,iostream 是一种标准库,包含了输入输出流 (stream) 的定义。流是一种抽象数据类型,用于在程序中读取或写入数据。
如果你遇到了 "iostream stream error fluent" 的错误消息,这可能是因为你的程序在读取或写入数据时遇到了问题。可能的原因包括:
你的程序试图读取或写入的文件不存在。
你的程序试图读取或写入的文件不可读或不可写。
你的程序在打开文件之前忘记了调用打开文件的函数。
你的程序在读取文件之前忘记了调用读取文件的函数。
要解决这个问题,你需要检查你的程序,确保文件存在且可读或可写,并且在读取或写入文件之前正确调用了打开文件和读取文件的函数。如果问题仍然存在,你可以尝试调试你的程序,找出错误的源头。 tornado 源码之 iostream.py IOStream 对 socket 进行包装,采用注册回调方式实现非阻塞。 ioloop 中 socket 事件发生后,调用 IOStream._handle_events 方法,对事件进行分发。
thebigfish
5年前
490
1
评论
Tornado
Fluent Formatter(IntelliJ IDEA Java插件) GitHub源码Plugin地址已替换为FluentTool功能格式化选中代码为Java流式风格一键生成链式调用的Javabuilder代码示例格式化前:流式风格格式化后:使用Fluentformat
浊酒入清梦
3年前
1.5k
3
2
IntelliJ IDEA
C++ 使用getline()从文件中读取一行字符串 我们知道,getline() 方法定义在 istream 类中,而 fstream 和 ifstream 类继承自 istream 类,因此 fstream 和 ifstream 的类对象可以调用 g
攻城狮Wayne
5月前
584
点赞
评论
架构
算法
代码规范
C++ 使用getline():从文件中读取一行字符串 getline() 方法从 cin 输入流缓冲区中读取一行字符串。在此基础上,getline() 方法还适用于读取指定文件中的一行数据,本节就给大家做详细的讲解。 我们知道,getline() 方法定
攻城狮Wayne
5月前
820
点赞
评论
架构
算法
程序员
iOS_Bonjour 编程总结二 Bonjour 是这样的一种技术,设备可以通过它轻松探测并连接到相同网络中的其他设备,整个过程只需要很少的用户参与或是根本就不需要用户参与。典型的 Bonjour 应用有 Remote 应用,AirPrint 等。建立一个 Bonjour 连接一般需要三个步骤,服务端发布服务,客户端浏览服务,客户端服务端交互。
RiverLi
6年前
2.3k
12
评论
iOS
文件和流 到目前为止,我们一直在使用 iostream 标准库,它提供了 cin 及 cout 方法,分别用于读取标准输入以及写入标准输出。 本教程将教你如何从文件中读取和写入。这需要另一个称为 fstream 的标准 C++ 库,它定义了三个新的数据类型: 使用 C++ 执行文件处理时…
和莎拉波娃谈了两年恋
4年前
254
点赞
评论
C++
Node服务端使用ffmpeg 背景 Node 使用 node-fluent-ffmpeg 进行 ffmpeg 操作,需要下载并且设置 ffmpeg 路径。node-ffmpeg-installer会自动下载ffmpeg,但是这个下
小鹿同学
1年前
970
3
评论
FFmpeg
Android JNI和NDK学习(基础篇):C++语言基础 概述上篇学习了C语言,这篇继续学习C++,这篇是建立在C基础上的真的是码字如蜗牛,写了好久才写这么多,作为笔记吧,防止以后忘记先写一个Helloworld首先打开你的文本编辑器,输入一下内容然后把文件
renxhui
3年前
5.3k
37
2
C++
iOS利用FFmpeg解析音视频数据流 利用FFmpeg解析音视频流,音视频流可以来自一个标准的RTMP的URL或者是一个文件. 通过解析得到音视频流,进一步就可以解码, 然后视频渲染在屏幕上,音频通过扬声器输出. 利用FFmpeg框架中libavformat模块可以通过函数av_read_frame解析出音视频流的…
小东邪
4年前
7.8k
28
8
iOS
c++那些事儿7 0 I O流,文件操作 ###知识点综述:```C++I/O:在iostream头文件中定义istream//通用输入流和其它输入流基类。ostream//通用输出流和其它流基类。iostream//通用输入输出流和其它输入
东风冷雪
6年前
285
点赞
评论
iOS
C++
命令行
iostream stream error: Access is denied. · Issue #1295 · FoldingAtHome/fah-issues · GitHub
iostream stream error: Access is denied. · Issue #1295 · FoldingAtHome/fah-issues · GitHub
Skip to content
Toggle navigation
Sign in
Product
Actions
Automate any workflow
Packages
Host and manage packages
Security
Find and fix vulnerabilities
Codespaces
Instant dev environments
Copilot
Write better code with AI
Code review
Manage code changes
Issues
Plan and track work
Discussions
Collaborate outside of code
Explore
All features
Documentation
GitHub Skills
Blog
Solutions
For
Enterprise
Teams
Startups
Education
By Solution
CI/CD & Automation
DevOps
DevSecOps
Resources
Learning Pathways
White papers, Ebooks, Webinars
Customer Stories
Partners
Open Source
GitHub Sponsors
Fund open source developers
The ReadME Project
GitHub community articles
Repositories
Topics
Trending
Collections
Pricing
Search or jump to...
Search code, repositories, users, issues, pull requests...
Search
Clear
Search syntax tips
Provide feedback
We read every piece of feedback, and take your input very seriously.
Include my email address so I can be contacted
Cancel
Submit feedback
Saved searches
Use saved searches to filter your results more quickly
Name
Query
To see all available qualifiers, see our documentation.
Cancel
Create saved search
Sign in
Sign up
You signed in with another tab or window. Reload to refresh your session.
You signed out in another tab or window. Reload to refresh your session.
You switched accounts on another tab or window. Reload to refresh your session.
Dismiss alert
FoldingAtHome
/
fah-issues
Public
Notifications
Fork
9
Star
50
Code
Issues
382
Pull requests
0
Actions
Projects
0
Wiki
Security
Insights
Additional navigation options
Code
Issues
Pull requests
Actions
Projects
Wiki
Security
Insights
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
Pick a username
Email Address
Password
Sign up for GitHub
By clicking “Sign up for GitHub”, you agree to our terms of service and
privacy statement. We’ll occasionally send you account related emails.
Already on GitHub?
Sign in
to your account
Jump to bottom
iostream stream error: Access is denied.
#1295
Closed
bb30994 opened this issue
Sep 13, 2019
· 1 comment
Closed
iostream stream error: Access is denied.
#1295
bb30994 opened this issue
Sep 13, 2019
· 1 comment
Labels
1.Type - Enhancement
Reported issue is an enhamcement.
4.OS - Windows
Reported issue occurs on Windows (Windows 10, Windows 8, Windows 7).
Comments
Copy link
bb30994
commented
Sep 13, 2019
(Simple enhancement request quoted from https://foldingforum.org/viewtopic.php?p=305171#p305171)
I have a similar issue using the 'portable version' of FAH.
Since NACL has finished, the binaries found on the site, allow me to run FAH, without installing it, and without admin privileges.
In a way, the same as NaCL, but no browser option.
I have the same issue running fahClient (CPU only) on Windows 10.
And I know it's because the program hasn't started the way it was supposed to start.
But for those who run FAHClient binaries, via a CMD window (with no install),
So far, I get the issue when exiting abruptly (closing CMD window, or repeatedly pressing CTRL + C).
Fah shuts down, but leaves one of the work directories (or files) as read-only (...."fah\work\00" folder)
The issue is resolved by closing FAH, and removing the 'read-only' tag from the '00' folder (right click, properties, remove 'read only' checkbox), and restarting fah.
I'm also running fahClient (CPU) on Windows 7, but haven't seen any access denied errors there.
Also, setting the 'hidden' option in Task Scheduler, to schedule FAH to start at boot (for those without admin rights), the 'hidden' option doesn't work. There's a FAH icon appearing in Windows Systray, but it's non functional, disappears, or causes errors with the cmd line.
Again, due to not running FAH the way it was intended (with installation), but FAH binaries do work without installation of any kind.
So, to summarize, I think the iostream errors can be prevented, by removing the read only lock on the directories.
The text was updated successfully, but these errors were encountered:
All reactions
shorttack
added
1.Type - Enhancement
Reported issue is an enhamcement.
4.OS - Windows
Reported issue occurs on Windows (Windows 10, Windows 8, Windows 7).
labels
Apr 14, 2020
Copy link
shorttack
commented
Apr 14, 2020
Closed: Windows enhancement. Not a common problem with users with FAHcontrol.
All reactions
Sorry, something went wrong.
shorttack
closed this as completed
Apr 14, 2020
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Assignees
No one assigned
Labels
1.Type - Enhancement
Reported issue is an enhamcement.
4.OS - Windows
Reported issue occurs on Windows (Windows 10, Windows 8, Windows 7).
Projects
None yet
Milestone
No milestone
Development
No branches or pull requests
2 participants
Footer
© 2024 GitHub, Inc.
Footer navigation
Terms
Privacy
Security
Status
Docs
Contact
Manage cookies
Do not share my personal information
You can’t perform that action at this time.
C++的iostream标准库介绍(1) - 知乎
C++的iostream标准库介绍(1) - 知乎首发于物联网学习圈切换模式写文章登录/注册C++的iostream标准库介绍(1)千锋物联网训练营已认证账号我们从一开始就一直在利用C++的输入输出在做着各种练习,输入输出是由iostream库提供的,所以讨论此标准库是有必要的,它与C语言的stdio库不同,它从一开始就是用多重继承与虚拟继承实现的面向对象的层次结构,作为一个c++的标准库组件提供给程序员使用。iostream为内置类型类型对象提供了输入输出支持,同时也支持文件的输入输出,类的设计者可以通过对iostream库的扩展,来支持自定义类型的输入输出操作。为什么说要扩展才能提供支持呢?我们来一个示例。#include
#include
using namespace std;
class Test
{
public:
Test(int a=0,int b=0)
{
Test::a=a;
Test::b=b;
}
int a;
int b;
};
int main()
{
Test t(100,50);
printf("%???",t);//不明确的输出格式
scanf("%???",t);//不明确的输入格式
cout< cin>>t;//同样不够明确 system("pause"); }由于自定义类的特殊性,在上面的代码中,无论你使用c风格的输入输出,或者是c++的输入输出都不是不明确的一个表示,由于c语言没有运算符重载机制,导致stdio库的不可扩充性,让我们无法让printf()和scanf()支持对自定义类对象的扩充识别,而c++是可以通过运算符重载机制扩充iostream库的,使系统能能够识别自定义类型,从而让输入输出明确的知道他们该干什么,格式是什么。在上例中我们之所以用printf与cout进行对比目的是为了告诉大家,C与C++处理输入输出的根本不同,我们从c的输入输出可以很明显看出是函数调用方式,而c++的则是对象模式,cout和cin是ostream类和istream类的对象。C++中的iostream库主要包含下图所示的几个头文件:我们所熟悉的输入输出操作分别是由istream(输入流)和ostream(输出流)这两个类提供的,为了允许双向的输入/输出,由istream和ostream派生出了iostream类。类的继承关系见下图:iostream库定义了以下三个标准流对象:1.cin,表示标准输入(standard input)的istream类对象。cin使我们可以从设备读如数据。2.cout,表示标准输出(standard output)的ostream类对象。cout使我们可以向设备输出或者写数据。3.cerr,表示标准错误(standard error)的osttream类对象。cerr是导出程序错误消息的地方,它只能允许向屏幕设备写数据。输出主要由重载的左移操作符(<<)来完成,输入主要由重载的右移操作符(>>)完成。 >>a表示将数据放入a对象中。 < 在iostream.h头文件中,ostream类对应每个基本数据类型都有其友元函数对左移操作符进行了友元函数的重载。ostream& operator<<(ostream &temp,int source); ostream& operator<<(ostream &temp,char *ps); 。。。。等等一句输出语句:cout<<"hahaha";,事实上调用的就是ostream& operator<<(ostream &temp,char *ps);这个运算符重载函数,由于返回的是流对象的引用,引用可以作为左值使用,所以当程序中有类似cout<<"hahaha"<<"xixixi";这样的语句出现的时候,就能够构成连续输出。由于iostream库不光支持对象的输入输出,同时也支持文件流的输入输出,所以在详细讲解左移与右移运算符重载之前,我们有必要先对文件的输入输出以及输入输出的控制符有所了解。和文件有关系的输入输出类主要在fstream.h这个头文件中被定义,在这个头文件中主要被定义了三个类,由这三个类控制对文件的各种输入输出操作,他们分别是ifstream、ofstream、fstream,其中fstream类是由iostream类派生而来,他们之间的继承关系见下图所示。由于文件设备并不像显示器屏幕与键盘那样是标准默认设备,所以它在fstream.h头文件中是没有像cout那样预先定义的全局对象,所以我们必须自己定义一个该类的对象,我们要以文件作为设备向文件输出信息(也就是向文件写数据),那么就应该使用ofstream类。ofstream类的默认构造函数原形为:ofstream::ofstream(const char *filename,int mode = ios::out,int openprot = filebuf::openprot); filename: 要打开的文件名 mode: 要打开文件的方式 prot: 打开文件的属性其中mode和openprot这两个参数的可选项表见下表:mode属性表 ios::app: 以追加的方式打开文件 ios::ate: 文件打开后定位到文件尾,ios:app就包含有此属性 ios::binary: 以二进制方式打开文件,缺省的方式是文本方式。两种方式的区别见前文 ios::in: 文件以输入方式打开 ios::out: 文件以输出方式打开 ios::trunc: 如果文件存在,把文件长度设为0可以用“或”把以上属性连接起来,如ios::out|ios::binary。openprot属性表: 0:普通文件,打开访问 1:只读文件 2:隐含文件 4:系统文件可以用“或”或者“+”把以上属性连接起来 ,如3或1|2就是以只读和隐含属性打开文件。示例代码如下:#include using namespace std; int main() { ofstream myfile("c:\\1.txt",ios::out|ios::trunc,0); myfile<<"hahaha"< myfile.close() system("pause"); }文件使用完后可以使用close成员函数关闭文件。ios::app为追加模式,在使用追加模式的时候同时进行文件状态的判断是一个比较好的习惯。示例如下:#include #include using namespace std; int main() { ofstream myfile("c:\\1.txt",ios::app,0); if(!myfile) { cout<<"文件打开失败,目标文件状态可能为只读!"; system("pause"); exit(1); } myfile<<"hahaha"< myfile.close(); }在定义ifstream和ofstream类对象的时候,我们也可以不指定文件。以后可以通过成员函数open()显式的把一个文件连接到一个类对象上。例如:#include #include using namespace std; int main() { ofstream myfile; myfile.open("c:\\1.txt",ios::out|ios::app,0); if(!myfile) { cout<<"文件创建失败,磁盘不可写或者文件为只读!"; system("pause"); exit(1); } myfile<<"hahaha"< myfile.close(); }下面我们来看一下是如何利用ifstream类对象,将文件中的数据读取出来,然后再输出到标准设备中的例子。代码如下:#include #include #include using namespace std; int main() { ifstream myfile; myfile.open("c:\\1.txt",ios::in,0); if(!myfile) { cout<<"文件读错误"; system("pause"); exit(1); } char ch; string content; while(myfile.get(ch)) { content+=ch; cout.put(ch);//cout< } myfile.close(); cout< system("pause"); }上例中,我们利用成员函数get(),逐一的读取文件中的有效字符,再利用put()成员函数,将文件中的数据通过循环逐一输出到标准设备(屏幕)上,get()成员函数会在文件读到默尾的时候返回假值,所以我们可以利用它的这个特性作为while循环的终止条件,我们同时也在上例中引入了C++风格的字符串类型string,在循环读取的时候逐一保存到content中,要使用string类型,必须包含string.h的头文件。我们在简单介绍过ofstream类和ifstream类后,我们再来看一下fstream类,fstream类是由iostream派生而来,fstream类对象可以同对文件进行读写操作。示例代码如下:#include #include using namespace std; int main() { fstream myfile; myfile.open("c:\\1.txt",ios::out|ios::app,0); if(!myfile) { cout<<"文件写错误,文件属性可能为只读!"< system("pause"); exit(1); } myfile<<"hahaha"< myfile.close(); myfile.open("c:\\1.txt",ios::in,0); if(!myfile) { cout<<"文件读错误,文件可能丢失!"< system("pause"); exit(1); } char ch; while(myfile.get(ch)) { cout.put(ch); } myfile.close(); system("pause"); }由于fstream类可以对文件同时进行读写操作,所以对它的对象进行初始话的时候一定要显式的指定mode和openprot参数。接下来我们来学习一下串流类的基础知识,什么叫串流类?简单的理解就是能够控制字符串类型对象进行输入输出的类,C++不光可以支持C++风格的字符串流控制,还可以支持C风格的字符串流控制。我们先看看看C++是如何对C风格的字符串流进行控制的,C中的字符串其实也就是字符数组,字符数组内的数据在内存中的位置的排列是连续的,我们通常用char str[size]或者char *str的方式声明创建C风格字符数组,为了能让字符数组作为设备并提供输入输出操作,C++引入了ostrstream、istrstream、strstream这三个类,要使用他们创建对象就必须包含strstream.h头文件。istrstream类用于执行C风格的串流的输入操作,也就是以字符串数组作为输入设备。 ostrstream类用于执行C风格的串流的输出操作,也就是一字符串数组作为输出设备。 strstream类同时可以支持C风格的串流的输入输出操作。istrstream类是从istream(输入流类)和strstreambase(字符串流基类)派生而来,ostrstream是从ostream(输出流类)和strstreambase(字符串流基类)派生而来,strstream则是从iostream(输入输出流类)和和strstreambase(字符串流基类)派生而来。他们的继承关系如下图所示:串流同样不是标准设备,不会有预先定义好的全局对象,所以不能直接操作,需要通过构造函数创建对象。类istrstream的构造函数原形如下:istrstream::istrstream(const char *str,int size); 参数1表示字符串数组,而参数2表示数组大小,当size为0时,表示istrstream类对象直接连接到由str所指向的内存空间并以\0结尾的字符串。下面的示例代码就是利用istrstream类创建类对象,制定流输入设备为字符串数组,通过它向一个字符型对象输入数据。代码如下:#include #include using namespace std; int main() { char *name = "hahahha"; int arraysize = strlen(name)+1; istrstream is(name,arraysize); char temp; is>>temp; cout< system("pause"); }类ostrstream用于执行串流的输出,它的构造函数如下所示:ostrstream::ostrstream(char *_Ptr,int streamsize,int Mode = ios::out); 第一个参数是字符数组,第二个是说明数组的大小,第三个参数是指打开方式。我们来一个示例代码:#include #include using namespace std; int main() { int arraysize=1; char *pbuffer=new char[arraysize]; ostrstream ostr(pbuffer,arraysize,ios::out); ostr< cout< delete[] pbuffer; system("pause"); }上面的代码中,我们创建一个c风格的串流输出对象ostr,我们将arraysize内的数据成功的以字符串的形式输出到了ostr对象所指向的pbuffer指针的堆空间中,pbuffer也正是我们要输出的字符串数组,在结尾要使用ends结束字符串,如果不这么做就有溢出的危险。转载自管宁(原创),如有侵权删。发布于 2020-04-07 16:11C++ 编程C++C / C++赞同 191 条评论分享喜欢收藏申请转载文章被以下专栏收录物联网学习圈更多物联网资料、源代码、项目资料都可以