问题标签 [cstdio]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
202 浏览

c++ - std::size_t 上的 cstdio 和 cstddef 冲突

测试.cpp

编译:

如果我只删除#include <cstdio>,一切正常。
但如果我只删除#include <cstddef>,同样的错误会弹出。
如果我同时删除:

我需要包含和std::size_t使用这两个库。
在这种情况下我该怎么办?我应该添加一些CXXFLAGS吗?

我的 gcc 版本是 4.8.5。

更新:

我试过系统默认的 gcc: /usr/bin/g++,错误消失了。
所以应该归咎于anaconda的gcc。我将向小组提出一个问题。
谢谢你们。

0 投票
3 回答
3182 浏览

c++ - 如何在cpp中使用gets()

这些天我在 cpp 中学习字符串和数组。在我的学校,他们教我们将字符串作为用户输入,必须使用gets(),但它不适用于我拥有的任何编译器。我已经尝试过使用 cstdio 库,仍然有错误。我知道 cin.getline() 但它是一个更大的词。

0 投票
0 回答
186 浏览

c++ - 使用标准 c++ printf() 函数作为自定义库的接口以打印到字符显示的正确方法

首先,一些背景。我已经购买了一些Avago HCMS-29xx LED 显示器。有一个用于控制它们的 Arduino 库,但我想使用树莓派。所以我已经fork了原库的 GitHub 并开始移植。

库端口主要用于基本的打印示例,但我将字符串传递给库的方式充其量是被破解的。所以我做了一些搜索,找到了一个示例,展示了如何使用 Stream 类作为我的库类的基础,并使用 printf() 将字符打印到我的显示器上。

这是示例:

和我的代码:

但是当我尝试编译时,它给出了一个错误

我究竟做错了什么?这甚至是使用标准 printf() 函数的明智方法吗?

0 投票
3 回答
1559 浏览

c++ - 为什么 sscanf 不能从一个字符串中读取 uint64_t 和 char?

我尝试使用从一个字符串sscanf中读取 auint64_t和 a ,但每次尝试此操作时char它只读取它ui(断言失败)。ret == 2

0 投票
1 回答
133 浏览

c++ - scanf中是否有保证的分配顺序?

我遇到了一些代码,想知道它是否只是一个侥幸,它按预期工作还是只是不好的做法。考虑以下 MCVE ( ideone ):

结构的内容是由标准保证的,还是这种未定义的行为?我在N4810中没有提到这一点。或者,如果我们颠倒变量的顺序,例如

内容有db.min保证吗?参数的顺序(从左到右)是赋值顺序吗?另请注意,即使已定义,我也不是在问为什么这是不好的做法。我也不需要评论告诉我不要使用scanf. 我不是。

0 投票
1 回答
211 浏览

c++ - 如何分离在 C++ 中执行的 java 应用程序的 stdin/stout/stderr 流

我正在为现有的 jarfile 创建一个 C++ 包装器。在本例中,我使用 Spigot Minecraft 服务器 jarfile 执行此操作。

当我执行应用程序时,我遇到了应用程序的输入和输出由 Java 应用程序控制的问题。这意味着当 java 应用程序成功终止时,C++ 应用程序也会成功终止,这表明标准输入的文件描述符正在关闭。

pipe()我查看了许多现有的 stackoverflow 帖子,我见过的最接近实现这一点的方法是使用分叉进程,然后使用and管道传输文件描述符dup()

C/Linux - 重定向 stdin 和 stout 时遇到问题

我目前正在重建代码以使其更具可移植性,并允许我向 C++ 代码添加额外的功能,但以下代码是我开始使用的代码,也是我将用来测试的代码.

理想情况下,我希望 java 应用程序的输入和输出在 stdin、stdout 和 stderr 的不同文件描述符集上运行,而不需要分叉。

有没有办法向 JVM 指示,使用 C++ 中的 JNI 库来实现这个目标?

0 投票
1 回答
572 浏览

c++ - 如何故意触发 fgets() 中的错误?

概括

使用时fgets(),我有错误检查代码,它会在fgets()返回null但尚未到达文件末尾时执行一些补救措施。我想练习这部分代码来验证它是否按预期工作。

是否有触发fgets()失败的规范方法?通过手动方式(以某种方式在调用 之间删除文件fgets())、一些测试设置(提供故意“损坏”的文件)或其他方式?


最小可重现示例

fgets_fail_test.cpp:

测试文件.txt:


理论

虽然我可以简单地用一些测试脚手架替换有问题的代码(编写一个保持内部状态的 fgets 包装器,增加一个计数器,一旦它到达第 #N 行,它就会返回null并手动设置文件错误和 errno)我觉得应该有一些“内置”的方式来做到这一点?

如果唯一的解决方案是脚手架,我会这样做。老实说,也许我在这里太聪明了。

0 投票
1 回答
50 浏览

c++ - 我的程序在到达 `cin.getline()` 函数时突然退出

getline()我使用该函数编写了一个程序。

代码

我认为问题出在这部分:

它打印enter string to be encrypted并突然退出:p

提前致谢

0 投票
0 回答
155 浏览

c - 尽管没有包含 cstdio 错误?(视觉工作室)

我正在尝试在 Visual Studio 2019 中编译 C 程序,我将“编译为”设置为“编译为 C 代码 (/TC)”,并且 cstdio 未包含在我的项目中的任何位置,但它仍然给我 cstdio 错误

0 投票
0 回答
33 浏览

c++ - 检索有关打开文件的信息

fopen()我可以仅使用返回的指针检索有关先前打开的文件的信息吗?

我问的原因是我正在尝试为FILE *s 编写一个 RAII 样式的包装类,并且我想让它尽可能通用,并且我为它想象的功能之一是类似复制的操作,这需要aFILE *作为参数,并创建对同一文件的新引用。

dup()在 POSIX 下,我可以使用/创建文件描述符的副本dup2(),甚至可以通过fnctl()'F_GETFL操作了解文件是如何被访问的。但是,即使我对 a 的底层描述符这样做,FILE *也不足以猜测流是文本还是二进制等属性(在 POSIX 下,没有真正的区别,但我想笼统地说),或者它的面向char- 或 -wchar_t基于文本的方向。

那么,有没有一种方法可以了解我即将为其创建包装器的流,我能走多远,我应该怎么做?

谢谢你的关注。