c语言循环读取多少行文件|用C语言读出文件行数

① 用C语言读出文件行数

#include<stdio.h>

inthangshu(charfile[])//输入工程目录下的文件名,或者其他目录下绝对路径名例如:c:\1.txt;

{

charc;

inth=0;

FILE*fp;

fp=fopen(file,"r");

if(fp==NULL)

return-1;//表示文件打开专错误

while((c=fgetc(fp))!=EOF)

{

if(c=='
')

h++;

else

{

c=fgetc(fp);//这是处理最属后一行可能没有换行标志,但是确文件结束。

if(c==EOF)

{

h++;

break;

}

}

}

returnh;

}

intmain()

{

inths=hangshu("c:\1.txt");//这里说明你要打开的文件。这个是c盘根目录下文件

inthst=hangshu("1.txt");//工程目录下的文件。

printf("行数:%d
",hs);

printf("行数:%d
",hs);

}

如上是用c编写的,不是c++.

运行的时候可以把中文注释去掉。

完全可以运行的,我已经测试过了。

② c语言读取txt文件多行数据

二维数组只能存放相同数据类型.

你这个明显是两个域的, 所以 前面读到一个字符中, 后面读到一个二维数组中比较好.

比如 可以这样

chars1[100];chars2[100][10];inti=0;while(!feof(fp)){s1[i]=fgetc(fp);fscanf(fp,"%s",s2[i]);fgetc(fp);i++;}

③ c语言不换行连续读取数据

在C语言中,如果你想连续读取多个数据而不换行,可以使用标准库函数“scanf”。例如,如果你想读取三个整数,可以使用如下代码:#include <stdio.h>int main(){ int a, b, c; scanf("%d%d%d", &a, &b, &c); printf("a = %d, b = %d, c = %d\n", a, b, c); return 0;}在这个程序中,“scanf”函数会读取三个整宴亩数,并将它们分别赋值给变量“a”、“b”和“c”。注意,“scanf”函数的格式字符串“%d%d%d”中的御旁“%d”表示读取一个整数,因此“scanf”函数会读取三个整数。如果你想读取不同类型的数据,可以使用相应的格式字符串。例如,如果你想读取一镇祥橡个整数和一个浮点数,可以使用“%d%f”作为格式字符串。希望这些信息对你有帮助。

④ c语言问题(想要读取文件的行数)

代码中有两个问题:(1)while(){}语法问题。while(条件)/////这后面不能加分号,加分号后将做空循环,循环里不会执行循环体的代码{循环体;}把while()后面的分号";"去掉就好。(2)while里面的条件(c=fgetc(fp) !=EOF) 有问题。按照C语言运算符的优先级将按以下顺序执行这个while循环里面的语句:1) 读取文件: fgetc(fp)2) 将读取文件的结果与EOF比较: fgetc(fp) !=EOF3) 将比较的结果赋值给c,就是说c每次得到的不是true(1)就是false(0),根本不是你想要的结果这个表达式其实是:while (c = (fgetc(fp) != EOF) )正确的写法是:while ( (c = fgetc(fp)) != EOF) 所以最后的代码修改如下:#include<stdio.h>main(){ FILE *fp; char name[100],c; int i; int count = 0;//计算文件中字符个数,从而判断是否为空文件 i=0;//这边为什么初始化为1?如果输入的是空文件那么应该就是0行 printf("enter filename:"); gets(name); fp=fopen( name ,"r"); if (fp != NULL) while ( (c=fgetc(fp)) != EOF ) { count ++; if(c == '\n') i++; } if(i == 0 && count > 0) i ++; //如果没有'\n'但是文件非空,那么该文件只有一行 printf("number of numbers:%d\n",i); } 当然,仅仅判断'\n'并不保险,并不是所有系统下面的换行都有'\n',比如dos系统是"\r\n", linux系统一般用'\n',苹果系统用的是'\r',如果是苹果系统这种做法就失效了。

⑤ C语言检查txt文件有多少行

1 以读的方式打开文件;

2 循环读取文件,遇到
累加;

3 遇到EOF退出,并累加EOF所在行;

4 输出行数。

代码如下:

intmain(){intc,l=0;FILE*fp=fopen("in.txt","r");while((c=fgetc(fp))!=EOF)if(c=='
')l++;l++;printf("%d
",l);}

⑥ 用c语言怎么读取txt文件中的行数

读取文件行数, 可以逐个字符读取文件,到文件尾,统计
的个数

参考代码如下

#include<stdio.h>intmain(){intc;FILE*fp;intlines=0;fp=fopen("in.txt","rb");if(fp){while((c=fgetc(fp))!=EOF)if(c=='
')lines++;printf("%d
",lines);fclose(fp);}return0;}

也可以通过fgets函数,每次读取一行,到文件尾,然后计算读取的次数

#include<stdio.h>#include<string.h>intmain(){chars[100];FILE*fp;intlines=0;fp=fopen("in.txt","r");if(fp){while((fgets(s,100,fp))!=NULL)if(s[strlen(s)-1]=='
')lines++;printf("%d
",lines);fclose(fp);}return0;}


赞 (0)