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

c++ - Fstream _Fgetc 访问冲突

我想用 fstream 从文件中读取行(我以前用过这个没有错误),但现在如果我调用 getline,我会得到访问冲突异常。我通过代码跟踪异常以从 fstream 函数 _Fgetc。那条“if”行抛出异常,但我不知道为什么。

我认为,文件指针可能为空,但我能用它做什么呢?或者,我的功能错了吗?想念我在 Visual Studio 2010 中的一些设置吗?

我正在使用:

我的功能:

来自 fstream 的 _Fgetc 导致异常:

fstream 中还有另外 3 个重载函数 _Fgetc,其中一些带有 fread、fgetwc,但我如何控制将使用哪个函数?

编辑:从我的堆栈中提取:

0 投票
3 回答
4712 浏览

c - 从 fgetc() 读取输入并使用 printf() 打印

好的,我确定我在这里遗漏了一些东西,但我不知道它是什么,我希望有人能帮我弄清楚。

我正在从命令行读取输入,并正在编写一个使用 fgetc() 来执行此操作的函数。但是,函数中看似肤浅的变化会导致其行为完全不同。

这是 main() 函数:

这是 read_flush() 的版本之一:

这个工作正常。你输入输入,它会吐出来。但是,下一个版本会导致 main 一遍又一遍地打印“输入命令:”,而没有给用户输入输入的机会。

我在这里错过了 fgetc() 的哪些微妙之处?

0 投票
1 回答
613 浏览

c - fgetc 内部如何工作

它实际上是逐个字符地读取,还是将一些字节读入内核缓冲区并逐个字符地返回给用户?

和 一样fgets吗?

让我说我使用 glibc 和 gcc 编译器。

0 投票
2 回答
438 浏览

c - C - 使用 fgetc 将值存储在枚举“类”中

我正在编写一个程序,它接受一个包含数据库条目的文件。这些条目都采用相同的格式,数据的顺序相同。文件中的第一个数字是条目数。然后数据如下所示: LastName FirstName StudentID age year GPA expectedGraduationDate

例如:Doe John 12345678 23 大一 4.0 2013

我的问题是年份值。我们应该将它声明为“类”类型,它应该是enum class{freshman, sophomore, junior, senior, grad};

我有一个带有以下声明的头文件:

然后我的主文件:

*更新错误

main.c:75:警告:传递 `memcpy' 的 arg 1 使指针从整数而不进行强制转换

main.c:75:警告:传递 `memcpy' 的 arg 2 使指针从整数而不进行强制转换

main.c:77:“memcpy”的参数 2 的类型不兼容

main.c:83:“memcpy”的参数 2 的类型不兼容

main.c:89:警告:传递 `memcpy' 的 arg 2 使指针从整数而不进行强制转换

main.c:94:在“DBrecord”之前解析错误

所以我假设我不能用 memcpy 做我想做的事情,或者我做错了。建议?

0 投票
4 回答
885 浏览

c - C:低级字符格式化:(回车+换行)使用 fgetc

我正在开发一个 C 项目,该项目读取文本文件并将其转换为布尔数组。首先我将文件读入一个大小的字符串n(是一个无符号字符数组),然后我使用一个函数将该字符串转换为一个大小为布尔数组n * 8。该功能完美运行,对此毫无疑问。

我使用以下代码从文件中获取字符串:

问题是在 Windows XP 中有一个由记事本制作的文本文件。在里面我有这个 4 个字符串":\n\nC"(冒号、输入键、输入键、大写 C)。

这就是 HxD(十六进制编辑器)的样子:3A 0D 0A 0D 0A 43.

这张表更清楚了:

现在,我执行程序,该程序以二进制形式打印该部分,所以我得到:

好吧,既然显示了这一点,我提出以下问题:

  • 读法正确吗?
  • 如果是这样,为什么要取出 0D?
  • 这是如何运作的?
0 投票
3 回答
911 浏览

c - fgetc() 不能正常工作

我有类似 7 4 5 1 等的文件。我想把这些数字放在一个多维数组中。

此代码无法正常工作。sudokuArray[0][0] 给出结果为真(文件中的第一个数字),但 [0][1] 给出了一些随机数,如 131231304。[0][2] 给出了 [0][1] 应该是什么。这是为什么?

0 投票
2 回答
10221 浏览

c - fgetc,检查 EOF

Linux System Programming一书中,我读过这样的书:

fgetc将读取的字符作为unsigned char强制转换返回到文件或错误的结尾intEOF结尾。使用的一个常见错误fgetc是:

此代码的正确版本是:

那么,为什么我不能char在与比较之前将返回值转换为EOF?为什么我必须与EOF精确比较int?如EOF定义为-1,它通常不是转换为char吗?
是否存在不正确的平台/编译器?

0 投票
4 回答
429 浏览

c - C:处理来自文件流的 fgetc 输入

好的,我正在使用 C 语言编写拼写检查程序。我遇到的问题是将系统词典中的一个单词读入程序。我已经搜索了一个答案,但我找不到任何完全正确的东西,可能是因为这是一个非常基本的东西。这是我到目前为止的代码。

以下是函数调用中使用的变量以及调用

字典指向/usr/share/dict/words,并且有代码可以确保它正确打开,但我没有把它放在这个问题中;也许这毕竟是问题所在。这应该输出 Aarhus,但它会输出:

我想知道是否每次程序执行第 16 行文件位置都会更新到下一个字符?如果指针从第二个字符开始,则输出是 Aarhus 的每隔一个字母。

readWord 函数还用于从文本文件中读取单个单词进行检查,这就是我没有使用 getline 的原因。还有其他函数可以将缓冲区连同终端空字符一起刷新为字符串并显示。这只是处理一次从文件中获取一个单词的问题。

0 投票
1 回答
7855 浏览

c - 从文件中读取字符

我想知道为什么我的程序得到错误的结果。我只需要从文件中读取字符,包括空格、(.)、(,) 和其他字符,然后以特定的字符串格式输出它们。结果,我得到了更多 300 个字符读取实例及其奇怪的表示。我需要打印实际字符及其内存位置。欣赏它!

0 投票
2 回答
872 浏览

c - 似乎无法让 fgetc 第二次读取文件

我正在重新打开并读取一个文件 SORTED.txt,在它第一次使用后关闭它 - 复制另一个文件 UNSORTED.txt 的所有内容。从 UNSORTED.txt 复制后,我想计算我复制的行数(作为一个单独的过程,而不是在复制过程中)。fegtc() 似乎第二次没有指向文件的开头(SORTED.txt),因此行的值保持初始化为 0。此外,一般来说,我可以重新指向fgetc() 在没有考虑关闭和重新打开文件的情况下完成?

感谢任何帮助。

干杯!