问题标签 [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 投票
2 回答
5006 浏览

c - fread 仅 .PNG 文件的前 5 个字节

我制作了一个简单的资源打包器,用于将我的游戏资源打包到一个文件中。一切都很顺利,直到我开始编写解包器。我注意到我打包的 .txt 文件 - 26 字节 - 很好地从资源文件中出来,没有任何问题,所有数据都保留了。但是,当读取我打包在资源文件中的 .PNG 文件时,前 5 个字节是完整的,而其余的则完全无效。

我将其追溯到打包过程,我注意到 fread 仅读取 .PNG 文件的前 5 个字节,而我终其一生都无法弄清楚原因。它甚至会触发“EOF”,表明该文件只有 5 个字节长,而实际上它是一个 787 字节的 PNG 小多边形,100 像素 x 100 像素。

我什至通过制作一个单独的应用程序来简单地将这个 PNG 文件读入缓冲区来测试这个问题,我得到了相同的结果,并且只读取了 5 个字节。

这是那个小的独立应用程序的代码:

有人可以指出我的愚蠢错误吗?

0 投票
2 回答
6008 浏览

c++ - C - printf 和 scanf - 如何终止输入?

我正在开发一个用 C 编写的简单应用程序。我在 Unix 环境中工作。

我的应用程序正在执行一些简单的 I/O。我使用 printf 提示用户输入一些内容,然后使用 scanf 获取该输入。

问题是,我不知道如何告诉我的应用程序在输入值后我已准备好继续。键入 'enter' 提供了一个有意义的换行符 '\n'。Control-d 确实允许 scanf 捕获我的输入,但似乎忽略了任何后续的 scanf 指令。

有人可以帮我吗?

0 投票
2 回答
693 浏览

c - 使 fgets 在 Linux 上发出更长的 read() 调用

我正在使用fgets. 我在服务器上看到过多的上下文切换,使用strace我看到以下内容:

fgets一次读取 4096 字节的块。fgets有什么方法可以控制调用时使用的大块read()

0 投票
4 回答
7908 浏览

java - System.out、stdout 和 cout 是一回事吗?

System.out、stdout 和 cout 在 Java、C 和 C++ 中分别是完全相同的吗?

为什么同一事物有三个不同的名称(尤其是当 C、C++ 和 Java 有很多共同点时)?

另外,我知道它们的用途,但它们到底是什么,在引擎盖下,我的意思是?

0 投票
4 回答
2718 浏览

c - 关于如何在 C 中读取字符数组中最后一个“单词”的提示

只是希望指向正确的方向:

对 C 程序有标准输入,我一次输入每一行并存储在 char[] 中。

现在我有了 char[],我如何取最后一个单词(假设用空格分隔)然后转换为小写?

我试过这个,但它只是挂起程序:

采取了建议并提出了这一点,是否有更有效的方法来做到这一点?

0 投票
2 回答
42843 浏览

c++ - 查找所有子字符串的出现和位置

我正在编写一个程序来解析一些保存为文本文件的数据。我要做的是在大海捞针中找到每根针的位置。我已经可以读取文件并确定出现次数,但我也在寻找索引。

0 投票
4 回答
9377 浏览

c - c语言while循环中fscanf的问题

我正在尝试逐行读取文件。我正在无限循环。哪里出错了?

0 投票
6 回答
793 浏览

c++ - C中优雅的二进制I/O?

我最近一直在使用 C/C++ 加载很多二进制文件,我对它的不优雅感到困扰。要么我得到很多看起来像这样的代码(我已经继续前进):

或者,我定义了一个本地的、打包的结构,以便我可以更轻松地读取固定大小的块。然而,在我看来,对于这样一个简单的问题——即将指定的文件读入内存——可以更有效地以更易读的方式完成。有没有人有任何提示/技巧等?我想澄清一下,我不是在寻找图书馆或其他东西来处理这个问题;如果我正在设计自己的文件并且不得不大量更改文件规范,我可能会受到诱惑,但现在我只是在寻找风格上的答案。

另外,你们中的一些人可能会建议mmap——我喜欢 mmap!我经常使用它,但它的问题是它会导致用于处理未对齐数据类型的讨厌的代码,而在使用 stdio 时实际上并不存在。最后,我将编写类似 stdio 的包装函数来从内存中读取。

谢谢!

编辑:我还应该澄清我不能更改文件格式——我必须阅读一个二进制文件;我无法请求其他格式的数据。

0 投票
3 回答
2701 浏览

visual-c++ - 没有指定库,但 printf 被链接到 C++ 程序?

我有以下代码:

在 Windows 7 x86 上使用 MSVC++ 10.0,我在命令行上编译它如下:

这将生成 simple.exe(编译器自动调用链接器)并且可执行文件按预期显示“hello world”消息。当我查看带有depends.exe的可执行文件时,它显示kernel32.dll是唯一的依赖项。当我转储 kernel32.dll 库的内容时,没有显示 printf。

VC++ 是否采用了某种优化,以便 printf 以某种方式直接包含在最终的可执行文件中?如果是这样,它是如何记录的,是否记录在任何地方?

0 投票
5 回答
433 浏览

c++ - 与 C stdio 库相比,C++ iostreams 必须提供什么?

可能重复:
您在 C++ 代码中使用了哪个 I/O 库?

我在对另一个问题的评论中问了这个问题,并要求我将其作为一个适当的问题。

为什么我要使用 iostream 而不是 stdio?更具体地说,std::getline 必须提供什么而不是 C 等价物?

拜托,不要语言抨击。