问题标签 [stdio]

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 投票
13 回答
13027 浏览

c++ - 在 C++ 代码中应该使用哪个 CI/O 库?

在新的 C++ 代码中,我倾向于使用 C++ iostream 库而不是 C stdio 库。

我注意到一些程序员似乎坚持使用 stdio,坚持认为它更便携。

真的是这样吗?用什么比较好?

0 投票
3 回答
14989 浏览

c++ - 为什么 fread 提前到达 EOF?

我正在编写一个将文件读入内存的 C 库。它跳过文件的前 54 个字节(标题),然后将其余部分作为数据读取。我使用 fseek 确定文件的长度,然后使用 fread 读取文件。

循环运行一次然后结束,因为到达 EOF(没有错误)。最后,bytesRead = 10624,ftell(stream) = 28726,缓冲区包含 28726 个值。我希望 fread 在到达 EOF 时读取 30,000 个字节并且文件位置为 30054。

C 不是我的母语,所以我怀疑我在某个地方遇到了一个愚蠢的初学者错误。

代码如下:


根据您使用的参考,很明显在模式标志中添加“b”就是答案。为白痴徽章寻求提名。:-)

该参考文献在第二段第二句中谈到了它(尽管不在他们的表格中)。

MSDN直到页面的一半才讨论二进制标志。

OpenGroup提到了“b”标签的存在,但表示它“没有任何作用”。

0 投票
3 回答
10458 浏览

c - C相当于自动刷新(每次写入后刷新标准输出)?

在 Perl 中,我可以输入:

并且打印到 STDOUT 的任何内容都将自动被 fflush() 处理。

C中是否有等价物?换句话说,有什么方法可以告诉 stdio 在每次 printf() 之后自动刷新 stdout,就像它自动刷新 stderr 的方式一样?

0 投票
8 回答
11352 浏览

c - 使用 C 在文本文件中返回随机行的最佳方法是什么?

使用 C 在文本文件中返回随机行的最佳方法是什么?它必须使用标准 I/O 库 ( <stdio.h>),因为它适用于 Nintendo DS 自制软件。

说明:

  • 使用文件中的标题来存储行数不适用于我想做的事情。
  • 我希望它尽可能随机(最好是如果每一行都有与其他行一样被选择的概率。)
  • 程序运行时文件永远不会改变。(这是 DS,所以没有多任务处理。)
0 投票
6 回答
130777 浏览

c - 如何使用文件描述符刷新写入?

事实证明,对 open() 与 fopen() 的整个误解源于 ARM 上的 Linux 2.6.14 内核中存在错误的 I2C 驱动程序。向后移植一个工作位 bashed 驱动程序解决了我试图在这里解决的问题的根本原因。

我试图找出 Linux (I2C) 中串行设备驱动程序的问题。看来,通过在设备上的写入和读取之间添加定时操作系统暂停(睡眠),事情会工作......(好多了)。

旁白:I2C 的本质是主机读取或写入的每个字节都由线路另一端(从机)上的设备确认 - 改善事情的暂停鼓励我将驱动程序视为异步工作 - 我无法与公共汽车的工作方式相协调。随便...

我想确保刷新写入(而不是使用固定持续时间的暂停),或者以某种方式测试写入/读取事务是否以多线程友好的方式 完成。

使用的问题fflush(fd);是它需要'fd'作为流指针(不是文件描述符),即

我的问题是我需要使用ioctl()不使用流指针的 。IE

建议?

0 投票
3 回答
16700 浏览

c - 标准输入上的 close/fclose 是否保证正确?

似乎以下调用符合您的预期(关闭流并且不允许任何进一步的输入 - 任何等待流上输入的内容都会返回错误),但它是否保证在所有编译器/平台上都是正确的?

0 投票
4 回答
890 浏览

.net - 使用 .net 从子进程重定向 stout

我正在使用以下代码

我的问题是我无法stdout正确阅读。但是,我可以轻松地写入stdin,但现在我正在尝试实现一些错误检查代码,但它不起作用。

我正在使用的程序似乎没有写入,stdout即使它是在命令行中运行的。我可以重现默认情况下bug附带ftp.exe的。Windows XP如果->FileNameftp.exe命令提示符更改ftp.exe通常给出的ftp>将不会显示在prg_output.

现在我知道提示必须使用某种类型,windows shell curses我可能会混淆问题。

connect i 127.0.0.1通常在我应该收到的指令之后,connecting to 127.0.0.1...但我什么也没收到。

关于我做错了什么的任何提示?还有另一种stdout我不知道的吗?

编辑

我不能使用参数,因为我有多行要写,就像ftp.exe. 此外,ftp.exe当您键入 dir 之类的命令时会输出。至少当您编写未知命令时它会输出,它会抱怨Invalid command.

0 投票
4 回答
262 浏览

c - 文件问题

我收到以下代码的以下错误,“1506-221 (S) Initializer must be a valid constant expression”

这是可以接受的吗?实现这一目标的正确方法是什么?

0 投票
1 回答
542 浏览

c++ - C++ 标准输入输出::重命名(); 同步?

stdio::rename()如果函数调用是完全同步的,我只是在徘徊。那么从函数调用返回后的文件是否可以以新名称立即使用,或者可能需要一些时间(几毫秒)才能发生这种情况?我正在调查一个恼人的计时错误,并怀疑后一种情况会发生。

我的软件在 Win2k3 服务器机器上运行。

0 投票
2 回答
2092 浏览

c - 忽略 C 中的换行符

我正在尝试编写一些代码来读取文件并忽略换行符(\ n),到目前为止我有:

但它似乎并没有忽略“\n”位(不确定“\”)

抱歉代码的布局,该网站似乎不喜欢我的 Opera 版本:(

编辑:谢谢大家,我已经连续编码了大约 6 个小时,完全忽略了递增,这就是为什么我认为 \n 保持静止的原因。

我也不知道\r,uning Linux,但试图跨平台,所以这很有帮助。