gpt4 book ai didi

c - 使用c的文件中的行数

转载 作者:太空狗 更新时间:2023-10-29 15:46:03 26 4
gpt4 key购买 nike

我是 C 中文件处理的新手。我正在开发一个程序来计算 c 中的行数和字符数。该程序对于字符工作正常,但对于行,o/p 总是少一个。我使用了新的用于计数的行字符。行数。这是我的代码:

 main()
{
FILE *fp;
int c,nl=0,nc=0;
char str[20];
printf("Enter filename\n");
scanf("%s",str);
fp=fopen(str,"r");
if(fp==NULL)
{
while(1)
{
printf("File does not exist\n");
printf("Enter new filename\n");
scanf("%s",str);
fp=fopen(str,"r");
if(fp!=NULL)
break;
}
}
c=getc(fp);
while(c!=EOF)
{
if(c=='\n')
nl++;
nc++;
c=getc(fp);
}
printf("no of lines=%d no of char=%d",nl,nc);
}

我的实现有什么问题吗?有没有其他方法可以统计no。行数?

最佳答案

这取决于你对线的定义。如果文件仅包含单个字符“a”,它是只有一行还是没有行?根据您的程序逻辑,它有零行。

您可以在 while 循环的末尾,在结束 } 之外添加这一行:

if (c != '\n') nl++;

如果最后一个字符不是换行符,那将添加一个额外的行。您还应该将 c 初始化为零,否则如果文件为空,这将导致不可预测的结果。

从其他答案中可以看出,计算文件行数的含义并不完全清楚。在开始编写代码之前,请确保您清楚地了解要计算的内容。

关于c - 使用c的文件中的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14079920/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com