Tag: getc

ftell返回不正确的值

我有一个问题,其中ftell返回一个不正确的值。 我的代码,当在linux上的netbeans中运行时报告正确,但完全相同的代码,在Windows上运行netbeans(使用mingw)报告错误。 文件指针是在BINARY_READ中打开的文件。 在我的linux netbeans中,运行我的子程序之后,ftell报告35.在我的windows netbeans中,在调用相同的子程序之后,ftell是3621.我追踪了我的子程序,以下语句似乎导致问题: if (((header_size = getc (fp)) == EOF) || (header_size == 0)) 在我的linux netbeans上,这个语句之后的ftell(fp)导致1.但是在我的windows netbeans上,这个语句之后的ftell(fp)是3585。 可能导致问题的原因是什么?

getc和fscanf之间的区别

为什么以下代码工作正常: #include int main() { FILE *fp=fopen(“input.txt”,”r+”); char c; while((c=getc(fp))!=EOF) { printf(“%c”,c); } fclose(fp); return 0; } 但是这段代码给出了错误“分段错误,核心转储”: #include int main() { FILE *fp=fopen(“input.txt”,”r+”); char c; while((c=fscanf(fp,”%c”,&c))!=EOF) { printf(“%c”,c); } fclose(fp); return 0; } input.txt包含一个以空格分隔的字符列表,如:abcdef

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

您好我在C中有一个简单的复制文件程序,但我无法解释为什么当我使用第二种方法时,我在目标文件中得到不同的输出。 for循环的正确输出: I am the worst programmer in the world! 😀 And this is bla bla bla bla more bla bla bla… 但是在while循环中,在EOF中生成一个随机字符: I am the worst programmer in the world! 😀 And this is bla bla bla bla more bla bla bla…  代码是 int main() { int i; char ch; create_files(); FILE *src […]

如何从txt文件C制作数组

我得到了包含以下信息的文本文件: (100; 200;第一个) 。任何人都可以告诉我如何将这些信息分成三个数组: Min = 100,Max = 200,Name = first 。 我试过这个 C = GETC(INP); I =的atoi(szinput); 但它第一次读取10次,第二次读取00次……依此类推 c节省10而不是1,所以我无法获得数组的正确信息…… 因此arraysMin存储1000而不是100 谢谢。

使用getc从控制台读取\ r(回车)vs \ n(换行符)?

我正在写一个基本上等待用户点击“输入”然后做某事的function。 我发现在测试时有效的方法如下: #include int main() { int x = getc(stdin); if (x == ‘\n’) { printf(“carriage return”); printf(“\n”); } else { printf(“missed it”); printf(“\n”); } } 我的问题,以及我最初尝试的是: if (x == ‘\r’)但是在测试中,程序没有抓住我进入。 ‘\n’似乎对应于我从控制台点击进入。 有人可以解释这个区别吗? 另外,要进行validation,将其写为if… == “\n”将表示字符串文字? 即用户真的必须从控制台输入”\n” ,对吗?

getc Vs getchar Vs Scanf用于从stdin读取字符

以下三个function: getc getchar&scanf 从stdin读取角色的最佳选择是什么?为什么? 这些function中是否存在任何已知的缺点或限制,使一个function优于另一个function?