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语言怎么对文件中指定位置的字符串进行读写
C语言对文件中指定位置的字符串进行读写可以通过fseek函数实现。fseek函数可以改变文件指针的位置,指定读写的起始位置。
读取字符串可以使用fgets函数,它可以从文件中读取指定长度的字符串并存储到字符数组中。
如果想要修改字符串,可以用fputs函数将新的字符串写入文件指定位置覆盖原来的字符串。需要注意的是在使用fputs写入新的字符串前必须先将文件指针移动到待修改字符串的起始位置。
您可以使用C语言中的文件操作函数来读写文件中指定位置的字符串。以下是一个示例代码,其中假设要读取的字符串位于文件中的第10行和第20列:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
FILE *fp;
char str[100];
int row, col;
fp = fopen("filename.txt", "r"); //打开文件
if (fp == NULL) {
printf("Error opening file\n");
exit(1);
}
row = 10; //指定行数为10
col = 20; //指定列数为20
fseek(fp, row * sizeof(char), SEEK_SET); //将文件指针移动到指定位置
fscanf(fp, "%s", str); //从文件中读取字符串并保存到字符数组中
fclose(fp); //关闭文件
printf("%s\n", str); //输出读取到的字符串
return 0;
}
```
还没有评论,来说两句吧...