C getchar错误
我写了最无害的C程序,但我不能得到预期的结果。我希望你能知道我的错误在哪里 代码如下:C getchar错误,c,eof,getchar,C,Eof,Getchar,我写了最无害的C程序,但我不能得到预期的结果。我希望你能知道我的错误在哪里 代码如下: #include <stdio.h> #include <stdlib.h> int main(int argc, char** argv) { int c, var4; double var1,var2,var3; while ((c = getchar()) != EOF) { while (c != ':') {
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char** argv) {
int c, var4;
double var1,var2,var3;
while ((c = getchar()) != EOF) {
while (c != ':') {
putchar(c);
c = getchar();
}
//scanf("%d/%d/%d",&mm,&dd,&yy);
//scanf("%lf%lf%lf%d",&var1,&var2,&var3,&var4);
}
return 0;
}
#包括
#包括
int main(int argc,字符**argv){
int c,var4;
双var1,var2,var3;
而((c=getchar())!=EOF){
而(c!=':'){
普查尔(c);
c=getchar();
}
//scanf(“%d/%d/%d”,&mm,&dd,&yy);
//scanf(“%lf%lf%lf%d”、&var1、&var2、&var3、&var4);
}
返回0;
}
我使用这个文件进行输入(命令行重定向)
名称1-代码1:2011年3月4日4.5.6 9.8 145
2011年3月4日6.5 4.6 9.9 185
名称2-代码2:
2011年3月5日4.5.6 9.8 135
2011年3月5日6.5 4.6 9.9 165
该错误出现在
while
循环过程中(我尝试了printf
而不是putchar
,它无休止地打印-1
,似乎永远也达不到EOF
)
我想就这些了,我提前感谢你的帮助。你得到一个字符,然后进入内部循环-检查
':'
,但不检查EOF
。因此,除非文件以:
结尾(这样外部循环就能看到),否则当它碰到EOF时,内部循环将永远旋转
您从getchar(EOF==-1)中得到一个错误,因为文件已完成。这就是它无休止地打印的内容。您没有检查内部getchar循环中的EOF,因此允许它连续读取EOF(-1)并打印出来
我不知道您期望的结果是什么,因此我无法帮助您。您遇到了什么错误?我猜您希望看到Name1-Code1
?你试过charc代码>?谢谢大家,对不起,这是一个愚蠢的问题