C语言中如何读取文件里的行数?
#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++.
运行的时候可以把中文注释去掉。
完全可以运行的,我已经测试过了。
c语言如何读取dat文件?
要读取.dat文件,需要使用C语言中的文件操作函数。下面是一些可能用到的函数和步骤:
步骤一:打开.dat文件
要打开.dat文件,可以使用fopen()函数。函数原型如下:
FILE *fopen(const char *path, const char *mode);
其中,path是文件的路径或者文件名,mode是打开文件的方式,比如"r"表示以只读方式打开,"w"表示以写方式打开等等。返回值是一个指向文件的指针,如果打开失败则返回NULL。
示例代码:
FILE *fp;
fp = fopen("data.dat", "rb"); // 以只读二进制方式打开data.dat文件
if(fp == NULL) {
printf("文件打开失败\n");
return 1;
}
步骤二:读取.dat文件的内容
读取.dat文件的内容可以使用fread()函数。函数原型如下:
size_t fread(void *ptr, size_t size, size_t count, FILE *stream);
其中,ptr是一个指向读取数据存放的缓冲区的指针,size是每个数据项的大小,count是要读取的数据项数目,stream是要读取的文件指针。返回值是实际读取到的数据项数目。
示例代码:
char buffer[1024];
size_t result = fread(buffer, 1, 1024, fp); // 读取1024个字节的数据到buffer中
if(result != 1024) {
printf("读取失败\n");
return 1;
}
// 处理读取得到的数据,比如输出到屏幕上
printf("%s", buffer);
步骤三:关闭.dat文件
读取完.dat文件的内容后,需要关闭文件。可以使用fclose()函数。函数原型如下:
int fclose(FILE *stream);
其中,stream是要关闭的文件指针。返回值为0表示成功,非0表示失败。
示例代码:
fclose(fp); // 关闭文件
需要注意的是,在读取.dat文件时一定要确认文件已经存在,而且以正确的方式打开。同时,每次读取的数据项大小和数量也要正确设置,否则可能会造成内存泄漏或程序崩溃。

