① 用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) !=EOF
3) 将比较的结果赋值给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;
}