Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C getchar错误_C_Eof_Getchar - Fatal编程技术网

C getchar错误

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 != ':') {

我写了最无害的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?谢谢大家,对不起,这是一个愚蠢的问题