① c语言中由用户给出一个文件夹,如何依次打开文件夹中的每个文件
if((dir=
opendir(command))
==
NULL)
{
printf
(
"%s:
can
not
open.",
__func__
);
return
-1;
}
else
{
while((s_dir=readdir(dir))!=NULL)
{
if(strncmp(s_dir->d_name,".",1)==0
||
strncmp(s_dir->d_name,"..",1)==0)
//linux系统的话会默认有一个.和..文件
{
continue;
}
sprintf(currpath,
"%s/%s/user",command,s_dir->d_name);
readValue
(
currpath,
buf,
sizeof(buf));
② c语言 读写文件时怎么样一次读取几行,然后再几行几行的往下读取
用循环语句,一次读几行。
用双重循环语句,就可以再几行几行地读。
例如:
#include <stdio.h>
#include <stdlib.h>
FILE *fin;
main(){
char s[20][200];
int i,j;
fin=fopen("abc.txt","r"); // 打开文件
for (i=0;i<4;i++) fgets(s[i],200,fin); // 以字符串形式 读4行
for (i=0;i<4;i++) printf("%s\n",s[i]); // 打印这4行
for (j=1;j<=4;j++) //循环4次,每次读4行
for (i=0;i<4;i++) fgets(s[j*4+i],200,fin);
return 0;
}
如果不是字符串,而是数据,那么根据文件里数据写法,一行有多少个数,也可以通过循环实现。
如果更复杂:每行有数,有字符串,个数不定,同样可以通过循环实现,只是读时 要检查测定是否遇到 '\n' 了,遇到 '\n'就是 一行。
写文件也是一样,可以循环,行结束就输出一个 '\n'.
③ 标准C语言中如何一次读取某文件中的多行数据
有很多种方式可以一次性读取多行数据,具体如何使用,取决于文件内容格式。
一、以fscanf读取。
fscanf读取时,默认会到空白字符截止。所以如果文件中不存在其它空白字符,那么可以以fscanf实现一次性读取多行的效果,比如文件中存储为
1
2.3
name那么要一次版性读取这三行数权据,可以使用:
int a;
float b;
char c[20];
fscanf(fp, "%d%f%s",&a,&b,c);其中,fp为打开该文件的文件指针,
分别将三行数据读取到三个变量a
b
c中。
二、以fread读取。
fread可以一次性读取若干个数据块,所以如果要读取的文件内容总长度已知,那么可以通过fread一次性读取多行。如
this is
for
my test
only.以上数据分4行,包括换行符在内共计25字节。
此时可以使用如下代码一次性读取四行:
char buf[100];
fread(buf, 25, 1, fp);其中fp为打开该文件的文件指针。
④ C语言编程求助,怎么从一个文本文件中依次读取其中的每行,并做处理
如果定义二维数组,可以这样做:
char *[100]; // 定义最多100行
char *tmp;
FILE *fp;
int index=0;
fp=fopen(file_name,"r");
while((tmp=fgets(fp))!=EOF){
//处理tmp值,切记tmp是没有开辟空间,如果需要保存处理的结果需要定义开辟空间的变量
// do_()
[index] = (char *)malloc(100); //限制每行最多100个字符存储空间
strcpy([index],tmp);
index++;
}
⑤ c语言逐行读取文件
可以使用fgets函数。
1 函数名:
fgets
2 声明:
char *fgets(char *buf, int bufsize, FILE *stream);
3 头文件:
stdio.h
4 功能:
从文件结构体指针stream中读取数据,每次读取一行。读取的数据保存在buf指向的字符数组中,每次最多读取bufsize-1个字符(第bufsize个字符赋'