① 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個字元賦'