gpt4 book ai didi

C - 无法获取文本文件中的行数?还有其他方式获取吗?

转载 作者:行者123 更新时间:2023-11-30 18:39:32 24 4
gpt4 key购买 nike

我希望程序按函数计算文本文件中的行数。以前可以用,但是现在总是返回0。我做错了什么?

#include <stdio.h>
int couLineF(FILE* fp){ //count lines in file
int count = 0,ch;
while((ch = fgetc(fp)) != EOF){
if(ch == (int)"\n" ) count++;
}
rewind(fp);
return count;
}

int main(){

FILE *fp = fopen("book.txt","r");
int lines;
if(fp){
lines = couLineF(fp);
printf("number of lines is : %d",lines);

}

return 0;

}
<小时/>

另一个问题

还有其他方法可以获取文本文件中的行数吗?

最佳答案

您的问题在这里:

if(ch == (int)"\n" )

您正在将 "\n" 的地址(字符串文字)转换为 int 并将其与 ch 进行比较。这没有任何意义。

替换为

if(ch == '\n' )

修复它。这会检查 ch 是否为换行符。(使用单引号 (') 表示字符,使用双引号 (") 表示字符串)

<小时/>其他问题有:

  • 如果 fopen 成功,则不使用 fclose 关闭文件。
  • 如果最后一行不以 \n 结尾,您的程序将不会计算最后一行。
  • 绝对没有理由使用 rewind(fp),因为您再也不会使用 FILE 指针。

关于C - 无法获取文本文件中的行数?还有其他方式获取吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29537728/

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