fgetc相关内容

fgetc 不识别 EOF

下面的程序可以在各种 Solaris/Linux 版本上正常运行,但不能在 AIX 上运行.但是,如果我在 AIX 上用 while(c!=0xff) 替换 while(c!=EOF) ,它运行完全正常. 有什么想法吗?我检查了 AIX 上的 fgetc 手册页,它应该返回 EOF 常量! #include #include#include int main() {字符 c;文件 *fp; ..
发布时间:2021-12-25 13:27:39 其他开发

为什么 fgetc() 返回 int 而不是 char?

我想将二进制文件源复制到文件目标.而已!该代码的灵感来自互联网上的许多示例. #include int main(int argc, char **argv) {文件 *fp1,*fp2;字符 ch;fp1 = fopen("source.pdf", "r");fp2 = fopen("target.pdf", "w");while((ch = fgetc(fp1)) != EOF)fputc( ..
发布时间:2021-09-16 18:37:16 其他开发

简单循环中无法预测的行为,以检查是否行&col存在于文件中

下面是函数的代码,该函数检查为其指定的行和列“坐标"对于将指针传递给它的文件是否有效. 混乱的12小时后,我不知道为什么这样随机. 在自己的源文件上运行此命令时,它会在任何大于 10 的列值上引发错误.我假设一些过分热情的编译器优化将 q 计数变量和 chk 变量并置,并且由于'\ n'具有十进制val 10 ,打破了我的循环. 假设,我尝试使用GCC进行编译(以前我使用的是Ap ..
发布时间:2021-04-23 20:06:47 其他开发

*可能*未签名的字符等于EOF吗?

在使用 fgetc 读取流的下一个字符时,通常会检查文件末尾不是通过 if((c = fgetc(stream))!= EOF) 其中 c 是 int 类型.然后,要么达到文件末尾并且条件将失败,要么 c 是将 unsigned char转换为 int 的char,预期与 EOF 不同-对于 EOF ,确保为负数.很好...显然. 但是有一个小问题...通常 char 类型的位数不超 ..
发布时间:2021-04-21 20:16:52 其他开发

如何从getc读取过去的EOF?

我正在编写一个XOR加密程序,该程序在加密期间但在解密期间可以正常工作 char ca2 = fgetc(f); 被卡在一个点上并且在对该问题的最佳猜测是(加密的文件包含各种字符)之后,就没有解密发生了,只要fgetc到达可以在文件实际结尾之前出现的EOF标记它卡在那里并停止阅读下一个字符. 这是getc()的某种限制吗?这是我的垃圾代码 int get_file_size ..
发布时间:2020-11-05 20:19:43 C/C++开发

C中不同的输出内容文件副本

你好,我在C语言中有一个简单的复制文件程序,但是当我使用第二种方法时,我无法解释为什么我在目标文件中得到了不同的输出. for循环的正确输出: I am the worst programmer in the world! :D And this is bla bla bla bla more bla bla bla... 使用while循环但在EOF中会生成随机字符的 : ..
发布时间:2020-06-14 19:21:39 其他开发

按char读取字符串,直到C/C ++行结束

如何一次读取一个字符的字符串,并在到达行尾时停止?我正在使用fgetc函数从文件读取并将字符放入数组(后者会将数组更改为malloc),但是无法弄清楚到达行尾时如何停止 对此进行了尝试(c是文件中带有char的变量): if(c=="\0") 但是它给出了我无法将指针与整数进行比较的错误 文件看起来像(单词的长度未知): one two three 因此出现了以下问 ..
发布时间:2020-06-14 19:21:36 C/C++开发

循环中的fgetc(stdin)产生奇怪的行为

我有这个代码 while(1){ printf("hello world !\n"); fgetc(stdin); } 运行时,我输入如下字母: hello world ! a 它将在下一个循环中忽略fgetc(stdin),并两次打印问候世界,而无需等待输入. hello world ! a hello world ! hello world ! a h ..
发布时间:2020-06-14 19:21:34 其他开发

使用fgetc时是否可能将EOF与常规字节值混淆?

我们经常这样使用fgetc: int c; while ((c = fgetc(file)) != EOF) { // do stuff } 从理论上讲,如果文件中的一个字节的值为EOF,则此代码有错误-将尽早中断循环并无法处理整个文件.这种情况可能吗? 据我了解,fgetc在内部将从文件读取的字节转换为unsigned char,然后转换为int,然后将其返回.如果int ..
发布时间:2020-04-27 04:27:24 其他开发

C fgets与fgetc的阅读线

我需要读取一行文本(以换行符结尾),而不对长度做出假设。所以我现在面对各种可能性: 使用 fgets 并每次检查是否最后一个字符是换行符并连续附加到缓冲区 使用 fgetc 读取每个字符,偶尔 realloc 缓冲区 Intuition告诉我 fgetc 变体可能会慢一些,但是我再也看不到 fgets 如何在不检查每个角色的情况下做到这一点(我的直觉也不总是那么好)。线条非常大,因此 ..
发布时间:2018-08-24 17:22:41 其他开发

fgetc读取值为-1的字符

fgetc()函数读取Ubuntu文本文件中的字符。 EoF之前的最后一个字符是code = -1。 这到底是什么? 在文本编辑器文件中似乎没问题,最后没有奇怪的符号。 while(!feof(fp)) { c = fgetc(fp); printf(“%c%i\\\ ”,c,c); // } 解决方案 feof 旨在表明您已尝试阅读过去文件的结尾 ..
发布时间:2018-04-17 19:21:30 服务器开发

fgetc不工作C-重复返回相同的字符

我在C中工作,并尝试读取一个文件,并将数组中保存fgetc返回的字符。问题是fgetc反复返回一个随机字符。在评论中标记了位置。例如,“wwwwwwwwww ...”或“@@@@@@@@@@@ ...”。任何帮助是赞赏。这是函数: void removeCategories(FILE * category,int * prodPrinted){ char more [16] = {' ..
发布时间:2016-11-18 12:48:21 其他开发

在在C文件计数的话

我正在写计数在一个文件中的字的数量的函数。词可以通过空格字符的数量分开。可存在于一个文件中的整数,但该方案应当只计算具有至少一个字母字符的话。 INT WORD_COUNT(为const char *文件名) { INT CH; INT状态; 诠释计数= 0; FILE *文件句柄; 如果((文件句柄= FOPEN(文件名,“R”))== NULL){ ..
发布时间:2016-08-23 10:41:26 C/C++

与龟etc使用整数变量()

我是想了解一些基本的code和按照code 稍微得到了困惑 INT的main() { FILE * FP; INT℃; INT N = 0; FP = FOPEN(“file.txt的”,“R”); 如果(FP == NULL) { PERROR(“错误打开文件”); 返回(-1); } 做 { C =龟e ..
发布时间:2016-08-23 10:22:58 C/C++开发

龟etc没有开始大的txt文件的开头

我在C工作,并有一个文本文件,它是我试图用龟etc 读取617KB。出于某种原因,龟etc 随机文件内开始。我试图移动文件指针来获得与 fseek的开头没有成功。我可以得到龟etc 工作,较小的文件以罚款。任何帮助是AP preciated。 样品输入了25,000行类似的数据: 产品 23 660 2366 3 237 09 2 3730 23734 23 773 241 46 来源:的 ..
发布时间:2016-08-19 15:12:49 C/C++

如何打印转义字符的字符?

我想打印转义字符作为使用该code字符或字符串: ,而((C =龟etc(FP))!= EOF) { 如果(C =='\\ 0') { 的printf(“\\ 0”); } 否则如果(C =='\\ a')的 { 的printf(“\\一个”); } 否则,如果(C =='\\ B') { ..
发布时间:2016-08-18 21:46:48 C/C++

比较无符号的字符和EOF

在以下code编译它进入一个无限循环: INT的main() { unsigned char型CH; FILE * FP; FP = FOPEN(“ABC”,“R”); 如果(FP == NULL) { 的printf(“无法打开”); 出口(1); } 而((CH =龟etc(FP))!= EOF) ..
发布时间:2016-08-18 14:27:42 C/C++