”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 为什么应避免在同一个 C++ 程序中混合使用 cout 和 wcout?

为什么应避免在同一个 C++ 程序中混合使用 cout 和 wcout?

发布于2024-12-23
浏览:737

Why Should You Avoid Mixing cout and wcout in the Same C   Program?

在同一个程序中混合宽输出流和窄输出流

在《C Cookbook》中,提到在不应该执行相同的程序。这个评论源于这样一个事实:C 和 C 标准规定流有一个方向,一旦为流设置了这个方向,就不应该混合与该方向不兼容的操作。

什么这在实践中意味着吗?

当第一次调用 cout 或 wcout 时,stdout 的方向被设置。在 cout 的情况下,stdout 成为面向字节的流,而在 wcout 的情况下,stdout 成为面向宽的流。根据 C 标准 [27.4.1] 和 C 标准 [7.19.2],一旦设置了流的方向,您就不应该调用与该流的方向不兼容的函数。

规则的例外

但是,值得注意的是,并非所有编译器都严格遵循此标准。例如,在 Visual C 10.0 中,未实现 fwide 函数(用于设置流的方向)。因此,在 Visual C 中,混合 cout 和 wcout 是允许的。

同样,在 GCC 的早期版本中,由于修复了一个 bug,可以通过调用 std 在同一个程序中调用 cout 和 wcout ::ios::sync_with_stdio(假);

但是,重要的是要记住这些都是规则的例外情况。一般来说,不建议在同一程序中混合宽输出流和窄输出流,因为这可能会导致意外行为或未定义的结果。

最新教程 更多>
  • 如何在GO编译器中自定义编译优化?
    如何在GO编译器中自定义编译优化?
    在GO编译器中自定义编译优化 GO中的默认编译过程遵循特定的优化策略。 However, users may need to adjust these optimizations for specific requirements.Optimization Control in Go Compi...
    编程 发布于2025-04-12
  • 如何有效地选择熊猫数据框中的列?
    如何有效地选择熊猫数据框中的列?
    在处理数据操作任务时,在Pandas DataFrames 中选择列时,选择特定列的必要条件是必要的。在Pandas中,选择列的各种选项。选项1:使用列名 如果已知列索引,请使用ILOC函数选择它们。请注意,python索引基于零。 df1 = df.iloc [:,0:2]#使用索引0和1 c...
    编程 发布于2025-04-12
  • 解决Python中Mixin类类型提示的循环导入问题
    解决Python中Mixin类类型提示的循环导入问题
    Python Type Hinting without Cyclic ImportsProblem:Importing modules with cyclic dependencies introduces runtime exceptions when type hinting is used i...
    编程 发布于2025-04-12
  • 如何使用组在MySQL中旋转数据?
    如何使用组在MySQL中旋转数据?
    在关系数据库中使用mySQL组使用mySQL组进行查询结果,在关系数据库中使用MySQL组,转移数据的数据是指重新排列的行和列的重排以增强数据可视化。在这里,我们面对一个共同的挑战:使用组的组将数据从基于行的基于列的转换为基于列。 Let's consider the following ...
    编程 发布于2025-04-12
  • 如何在php中使用卷发发送原始帖子请求?
    如何在php中使用卷发发送原始帖子请求?
    如何使用php 创建请求来发送原始帖子请求,开始使用curl_init()开始初始化curl session。然后,配置以下选项: curlopt_url:请求 [要发送的原始数据指定内容类型,为原始的帖子请求指定身体的内容类型很重要。在这种情况下,它是文本/平原。要执行此操作,请使用包含以下标头...
    编程 发布于2025-04-12
  • 找到最大计数时,如何解决mySQL中的“组函数\”错误的“无效使用”?
    找到最大计数时,如何解决mySQL中的“组函数\”错误的“无效使用”?
    如何在mySQL中使用mySql 检索最大计数,您可能会遇到一个问题,您可能会在尝试使用以下命令:理解错误正确找到由名称列分组的值的最大计数,请使用以下修改后的查询: 计数(*)为c 来自EMP1 按名称组 c desc订购 限制1 查询说明 select语句提取名称列和每个名称...
    编程 发布于2025-04-12
  • Java中`>>`与`>>>`运算符的区别是什么?
    Java中`>>`与`>>>`运算符的区别是什么?
    >`and`>>>`java中的运算符? “ />>`and'>>>`java中的操作员? “ />
    编程 发布于2025-04-12
  • PHP网站为何显示“禁止访问”错误及解决方法
    PHP网站为何显示“禁止访问”错误及解决方法
    默认索引文件在设置PHP网站时,未加载PHP 在访问网站的根目录时遇到错误“ Forbidden”时,未加载。当不配置服务器以识别index.php文件为默认索引文件时,通常会发生此问题。 注意:确保将apache配置为允许.htaccess文件。如果不是,请修改Apache的配置文件(http...
    编程 发布于2025-04-12
  • Java 8类型推断如何应对比较器链式挑战?
    Java 8类型推断如何应对比较器链式挑战?
    在Java 8比较器链中键入挑战[&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& && &&&&&&&& && && && && &&&&&&& && &&&&&&&&&&&&&华JAVA 8的lambda表达式和比较器链提供有力的机制来分...
    编程 发布于2025-04-12
  • IE8中Inline-Block显示为何失效?
    IE8中Inline-Block显示为何失效?
    如您提到的,IE8支持内联块,但它需要在HTML文档开始时进行适当的Doctype声明。没有它,IE8的渲染引擎可能会恢复为怪异模式,从而导致您的CSS行为不同。要解决此问题,请在html标签之前尝试在文档的第一行中添加此行:[&& && && && && &&华型html public pub...
    编程 发布于2025-04-12
  • 为什么我的CSS背景图像出现?
    为什么我的CSS背景图像出现?
    故障排除:CSS背景图像未出现 ,您的背景图像尽管遵循教程说明,但您的背景图像仍未加载。图像和样式表位于相同的目录中,但背景仍然是空白的白色帆布。而不是不弃用的,您已经使用了CSS样式: bockent {背景:封闭图像文件名:背景图:url(nickcage.jpg); 如果您的html,css...
    编程 发布于2025-04-12
  • 如何解决由于Android的内容安全策略而拒绝加载脚本... \”错误?
    如何解决由于Android的内容安全策略而拒绝加载脚本... \”错误?
    Unveiling the Mystery: Content Security Policy Directive ErrorsEncountering the enigmatic error "Refused to load the script..." when deployi...
    编程 发布于2025-04-12
  • 如何限制动态大小的父元素中元素的滚动范围?
    如何限制动态大小的父元素中元素的滚动范围?
    在交互式接口中实现垂直滚动元素的CSS高度限制问题:考虑一个布局,其中我们具有与用户垂直滚动一起移动的可滚动地图div,同时与固定的固定sidebar保持一致。但是,地图的滚动无限期扩展,超过了视口的高度,阻止用户访问页面页脚。 映射{} 因此。我们不使用jQuery的“ .aimimate(...
    编程 发布于2025-04-12
  • 为什么使用Firefox后退按钮时JavaScript执行停止?
    为什么使用Firefox后退按钮时JavaScript执行停止?
    导航历史记录问题:JavaScript使用Firefox Back Back 此行为是由浏览器缓存JavaScript资源引起的。要解决此问题并确保在后续页面访问中执行脚本,Firefox用户应设置一个空功能。 警报'); }; alert('inline Alert')...
    编程 发布于2025-04-12
  • 如何在其容器中为DIV创建平滑的左右CSS动画?
    如何在其容器中为DIV创建平滑的左右CSS动画?
    通用CSS动画,用于左右运动 ,我们将探索创建一个通用的CSS动画,以向左和右移动DIV,从而到达其容器的边缘。该动画可以应用于具有绝对定位的任何div,无论其未知长度如何。问题:使用左直接导致瞬时消失 更加流畅的解决方案:混合转换和左 [并实现平稳的,线性的运动,我们介绍了线性的转换。这...
    编程 发布于2025-04-12

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3