兄弟姐妹帮我讲解下,用C语言读出文件行数?
编写一个函数,计算输入的行数。(提示:不能使用get()函数输入这些行,因为get()函数接收第一个换行字符时就结束输入。)兄弟姐妹帮我讲解下,用C语言读出文件行数?
编写一个函数,计算输入的行数。(提示:不能使用get()函数输入这些行,因为get()函数接收第一个换行字符时就结束输入。)2024-05-03 00:33:19
#include <stdio.h>
int hangshu(char file[])//输入工程目录下的文件名,或者其他目录下绝对路径名例如:c:\\1.txt;
{
char c;
int h=0;
FILE *fp;
fp=fopen(file,"r");
if(fp==NULL)
return -1;//表示文件打开错误
while((c=fgetc(fp))!=EOF)
{
if(c=='\n')
h++;
else
{
c=fgetc(fp);//这是处理最后一行可能没有换行标志,但是确文件结束。
if(c==EOF)
{
h++;
break;
}
}
}
return h;
}
int main()
{
int hs=hangshu("c:\\1.txt");//这里说明你要打开的文件。这个是c盘根目录下文件
int hst=hangshu("1.txt");//工程目录下的文件。
printf("行数:%d\n",hs);
printf("行数:%d\n",hs);
}
如上是用c编写的,不是c++.
运行的时候可以把中文注释去掉。
完全可以运行的,我已经测试过了。
2024-05-03 00:35:20
想得到文件行数,只需要一行一行读取并累计,直到文件末尾。就可以获取文件行数了。
#include <stdio.h>
int main()
{
FILE *pf = fopen("C:/Users/xin/Desktop/12.txt", "r"); // 打开文件
char buf[1000];
int lineCnt = 0;
if (!pf) // 判断是否打开成功
return -1;
while (fgets(buf, 1000, pf)) // fgets循环读取,直到文件最后,才会返回NULL
lineCnt++; // 累计行数
fclose(pf);
printf("file line count = %d\n", lineCnt);
return 0;
}
2024-05-03 02:35:23
要获得一个文本文件的行数:
1、用fopen函数打开文件。
2、循环读取文件中的每一个字符,判断字符是否为换行符,如果是增加计数。
3、最后输出计数即可。
在c语言中换行符用转义字符‘\n’表示。示例代码如下:
#include<stdio.h>
#include <string.h>
void main()
{
FILE *fp;
char name[100];
int i,c;
i=0;
printf("enter filename:");
gets(name);
fp=fopen( name ,"r");
if (fp!=NULL)
while ((c=fgetc(fp))!=EOF)
{
if(c=='\n')
i++;
}
fclose(fp);
printf("number of numbers:%d\n",i);
}
2024-05-03 02:20:17