问题标签 [fgetc]

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 投票
4 回答
306 浏览

c - C中的字符问题

为什么这不编译?看不到错误

}

0 投票
1 回答
2823 浏览

c - fgetc 无法识别 EOF

下面的程序在各种 Solaris/Linux 风格上运行良好,但在 AIX 上却不行。但是,如果我在 AIX 上替换while(c!=EOF)while(c!=0xff),它会运行得很好。

有什么想法吗?我检查了 AIX 上的 fgetc 手册页,它应该返回 EOF 常量!


0 投票
5 回答
12525 浏览

c - C fgets 与 fgetc 用于读取行

我需要阅读一行文本(以换行符结尾)而不对长度做出假设。所以我现在面临着可能性:

  • fgets每次使用并检查最后一个字符是否为换行符并不断追加到缓冲区
  • 使用缓冲区读取每个字符fgetc,偶尔realloc使用缓冲区

直觉告诉我这个fgetc变体可能会更慢,但是我不知道fgets如果不检查每个角色怎么能做到(而且我的直觉并不总是那么好)。线条很大,所以性能很重要。

我想知道每种方法的优缺点。先感谢您。

0 投票
2 回答
218 浏览

php - fopen 有一些奇怪的行为

我有一个名为 denem.txt 的文件并且有内容

当我们以 'a+b' 模式打开文件时,PHP 应该将指针指向文件末尾,这意味着当我尝试使用 fgetc 函数获取字符时,它应该返回 False,因为 feof 为真。但是,当我使用类似的代码时

我得到 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 。-> 这很奇怪,因为我没有使用 rewind() 并且指针必须在文件末尾意味着 fgetc 必须返回 False。ftell 返回 int 0 表示指针位于文件的开头。但是,当我尝试使用使用指针当前位置的 fwrite 向文件写入内容时,如果 ftell 没有欺骗我们,它应该将其写入文件的开头。但是当我使用 fwrite 猜测会发生什么时,它会将其写入文件末尾,我的文件变为

你对此有什么想法吗?

0 投票
3 回答
3613 浏览

php - 手动将 fgetc 文件指针移动到下一行

问题 1:如何手动将 fgetc 文件指针从当前位置移动到下一行?

我正在逐个字符地读取数据,直到计算出指定数量的分隔符。一旦定界符计数达到一定数量,它需要复制该行的其余部分,直到一个新行(记录定界符)。然后我需要从下一条记录开始再次开始逐个字符地复制。

问题2:手动将文件指针移动到下一行是正确的想法吗?我只会爆炸(在“\n”处),但我必须先计算管道分隔符,因为“\n”并不总是记录分隔符。

这是我的代码(它将所有数据放入正确的记录中,直到它到达记录中的最后一个分隔符“|”。然后它将该行的其余部分放入下一条记录,因为我还没有弄清楚如何正确地制作它在指定的 | 计数后查找 '\n'):

样本数据:

0 投票
4 回答
4991 浏览

c - feof() 和 fgetc() 的 C 分段错误错误

谁能帮我解决我的困境?当我编译我的程序时,我没有收到任何错误或警告。但是,当我实际运行可执行文件时,会出现分段错误。如果我理解正确的话,这是因为指针被错误地使用了。我在 feof(srcIn) 行上收到一个特定错误,我不知道为什么。除了程序开始时的 srcIn = fopen(argv[0], "r") 值之外,FILE* srcIn 永远不会被分配新值。我最初用 C++ 实现了这个解决方案,出于某种原因需要将其更改为 C。无论如何,在 C++ 中,除了使用 srcIn.eof() 作为条件和 srcIn.get(something) 作为读取方法之外,我基本上做了同样的事情。它编译并运行没有任何问题。

编辑:我忘了提到当我遇到段错误时,我什至没有真正进入 main 。这使我相信可执行文件本身存在某种问题。gdb 告诉我 seg 错误在线发生:有什么 if(feof(srcIn)) 想法吗?

0 投票
1 回答
723 浏览

c - C中的UTF-32到UTF-8转换器,缓冲区充满了空值/零

我一直在努力让这个工作。该程序应该采用两个参数,一个用于缓冲区大小,另一个用于文件名,并将该文件从 UTF-32 转换为 UTF-8。我一直在使用 fgetc() 函数用 Unicode 代码点填充一个 int 数组。我已经测试 printint 输出缓冲区的内容,并且它具有所有这些空字符而不是每个代码点。

例如,对于仅包含字符“A”的文件:缓冲区 [0] 为 0 缓冲区 [1] 为 0 缓冲区 [2] 为 0 缓冲区 [3] 为 41

U+7F 以上的任何代码点最终都会分开。

这是初始化我的缓冲区的代码:

0 投票
2 回答
90 浏览

c - 为什么这两种方法返回不同的东西?

所以...我正在尝试制作自己的简单键盘记录器,这适用于在 shell 中键入的内容,但是如果我双击可执行文件,它只会将其中的很多内容放入文件中:ÿ

我知道到目前为止,如果我输入 aj它将结束;这是为了调试:


0 投票
2 回答
1377 浏览

fgetc - 使用 fgetc 读取文件

我有一个关于使用 fgetc 计算指定文件中的字符的问题。当您必须单独计算字符类型时,您如何使用它?例如,我只想计算小写字符的数量,或者空格的数量,或者标点符号等?有人可以举一个简短的例子吗?谢谢

我试着做这个程序,希望能计算字符总数,你如何挤入单独字符类型的数量?我不确定这个程序是否正确

0 投票
2 回答
836 浏览

c - 如何使用 sscanf 获取名称并按照我想要的方式打印出来

我正在制作一个程序,该程序从用逗号分隔的用户中获取名称。该程序允许用户在逗号之间放置任意数量的空格。例如:

如果我要输入类似的东西

或者

我想打印出来

问题是我的程序没有正确处理上面的以下示例;如果输入类似于

或者

这是我的代码:

是因为我没有正确使用 sscanf 吗?