问题标签 [getc]
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.
c - 在 C 中标记用户输入(存储在 **arg 中)?
我正在尝试编写一个类似 shell 的简单接口,它接受用户输入(通过 char)并通过指向指针 * 的指针存储它(正是 argv 的工作原理)。这是我的代码:
如果我通过 argvInput 循环:
argvInput[i] 的所有值都是最后一个输入赋值。所以如果我输入:“快乐的日子快到了”,循环的输出是:
我不知所措。显然每个循环都覆盖了以前的值,但我盯着屏幕,无法弄清楚为什么......
perl - 当 Term::ReadKey::ReadKey 返回“0”时,这是什么意思?
在dumpkeys --long-info
Linux 终端中调用后,我得到以下值:
当我运行此脚本并按Ctrl a
or时,Ctrl b
我会得到相应的值。
当我按下Ctrl Space
ReadKey
返回时0
。
这个 null 是否意味着它是的值,Ctrl Space
或者它是否意味着没有设置或为空的东西?
c - 用户输入以制作链表
我有一个 ac 99 编程课程的项目,要求我们向用户询问一个句子,然后逐个字符地获取该句子并将每个字符单独存储在链表中。我们被告知我们需要使用 getc() 和一个 while 循环来读取句子并存储到链表中。
到目前为止,我知道您需要执行 while 循环,直到 getc 遇到“\n”。除此之外,我什至不知道从哪里开始。除了这个项目,我对这个类没有任何问题。
非常感谢任何有关方法或其他方法的帮助。
c++ - 是否有 C++ 版本的 getc_unlocked()?
虽然理论上看起来std::istream::get()
可能很快,但实际上并非如此。我相信一个原因是每次调用都会进行一些锁定std::istream::get()
,而对于单线程程序,这不是必需的。getc_unlocked
在 C++ 中是否有等价物?std::streambuf
或者也许有某种方法可以在 C++中关闭(我假设) a 的这种锁定?
c - 使用 getc 从文件读取时检查字符
在下面的代码中,我试图存储文件中的所有字符(包括换行符)。如果读取了换行符,变量 'i' 应该递增并且 'j' 重置为 0,但这不会发生。通过从我的数组打印到控制台,我已经确认实际上正在读取和存储换行符。
c - getc() 与 fgetc() - 主要区别是什么?
我在任何地方都看到“它实际上是相同的”,或者类似的东西......
来自GNU C 编程教程:
GNU C 库中还有一个名为 fgetc 的函数。它在大多数方面与 getc 相同,只是 getc 通常实现为宏函数并且经过高度优化,因此在大多数情况下更可取。(在您从标准输入读取的情况下,getc 与 fgetc 一样快,因为与计算机读取输入的速度相比,人类打字速度较慢,但是当您从非人类交互式生成的流中读取时, fgetc 可能更好。)
其他的区别是什么?我听说它们每个都有不同的实现(并且可以用作宏),但是,是什么让它们如此不同(或足够不同)以使它们都在标准 C 库(或规范)中?
c - getc 返回值存储在 char 变量中
在此Wikipedia 页面上,有一个示例 C 程序从文件中读取和打印前 5 个字节:
我不明白的部分是它使用getc
返回 anint
并将其存储在 s 数组中的函数char
- 怎么可能将int
s 存储在char
数组中?
c - 如何使标准输入上的 getc() 成为二进制
我正在使用带有 getc() 的 while 循环从文件句柄中读取,它工作正常。现在我正在添加对管道的支持。
我的问题是,虽然 x0A、X0D 和 x0A0D 通过就好了,但 x0D0A 的任何情况都会减少到 x0A。此外,x1A 似乎在遇到时会完全停止该过程。
我正在输入 tar 的输出,并且正在弄乱文件。
这很简单,因为 FH 需要指向文件或标准输入。对于测试,我只是将 buff 写入文件以查看更改。如果 FH 是一个文件,则该代码可以完美运行。
我在使用 tar、type 和 cat 作为管道源时看到了相同的行为
c - ftell 返回不正确的值
我遇到了 ftell 返回错误值的问题。我的代码在 linux 上的 netbeans 中运行时报告正确,但完全相同的代码在 windows 上的 netbeans 中运行(使用 mingw)报告不正确。文件指针指向在 BINARY_READ 中打开的文件。在我的 linux netbeans 中,运行我的子程序后,ftell 报告 35。在我的 windows netbeans 中,调用相同的子程序后,ftell 是 3621。我跟踪了我的子程序,以下语句似乎导致了问题:
在我的 linux netbeans 上,此语句后的 ftell(fp) 为 1。但在我的 windows netbeans 上,此语句后的 ftell(fp) 为 3585。
什么可能导致问题?
c - 如何将“具有副作用的表达式”传递给 getc?
“UNIX 环境中的高级编程,第 3 版”,第 151 页:
getc
和之间的区别在于fgetc
可以getc
实现为宏,而fgetc
不能实现为宏。这意味着三件事:
- to 的参数
getc
不应是具有副作用的表达式。- 既然
fgetc
保证是一个函数,我们就可以取它的地址。这允许我们将地址fgetc
作为参数传递给另一个函数。- 调用 to
fgetc
可能比调用 需要更长的getc
时间,因为调用函数通常需要更多时间。
以流指针为参数的函数签名会出现什么“具有副作用的表达式” ?