编程小土豆 发表于 2019-8-12 20:17:55

文件操作出了点问题,输出错误

下面的代码执行都是没有问题的,可是计算后的结果是一个非常长的数......

#include <stdio.h>
#include <stdlib.h>


void main()
{
        FILE *fp;
        int n=0;
        char filename, ch;
        printf("请输入您需要查出的文件名称:\n");
        scanf("%s",&filename);
        if(!(fp = fopen(filename, "r")))
        {
                printf("sorry, didn't find the file\n");
                goto END;
        }
        while(!(feof(fp)))
        {
                ch = fgetc(fp);
                if(ch == '\n')
                {
                        n += 1;
                }
        }
        n += 1;
        fclose(fp);
        printf("\n此文件共包含代码 %d 行\n");
END:
        system("pause");
}

希望大家帮忙指点一下,谢谢。

jiuyuan 发表于 2019-8-12 21:45:12

#include <stdio.h>
#include <stdlib.h>


int main(void)
{
      FILE *fp;
      int n=0;
      char filename, ch;
      printf("请输入您需要查出的文件名称:\n");
      scanf("%s",filename);
      if(!(fp = fopen(filename, "r"))) //scanf()的第二个参数是指针,编译器会把数组名filename转化为指针,不用再取地址(&filename)
      {
                printf("sorry, didn't find the file\n");
                goto END;
      }
       else
      {
               while((ch = fgetc(fp))!=EOF)
                if(ch == '\n')
                {
                        n += 1;
                }
      }
      fclose(fp);
      printf("\n此文件共包含代码 %d 行\n",n);//printf()的转换说明对应的第二个参数你没有写
END:
      system("pause");
}

楼主,我帮你改了下,你看看

编程小土豆 发表于 2019-8-13 08:44:01

哦,明白了,竟是忘写printf后面参数的问题{:10_282:}
谢谢!
页: [1]
查看完整版本: 文件操作出了点问题,输出错误