當前位置:首頁 » 編程語言 » c語言怎麼讀取每行數據
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言怎麼讀取每行數據

發布時間: 2022-06-06 19:58:01

A. c語言讀取指定行數據

#include<stdio.h>
#defineMAXC1024
intReadSpeacialLine(inti)
{
charfilename[]="test.c";//文件名
FILE*fp;
intret=0,L;
intWhichLine=i;//指定要讀取哪一行
intCurrentIndex=0;//當前讀取的行
charStrLine[MAXC];//每行最大讀取的字元數,可據實際情況更改
if((fp=fopen(filename,"r"))==NULL)//打開文件
{
printf("openfileerror! ");
returnret;
}
while(1){
if(NULL==fgets(StrLine,MAXC,fp))break;
L=strlen(StrLine);
if(' '==StrLine[L-1]){
memset(ln+L-1,0,MAXC-L+1);
CurrentIndex++;
if(WhichLine==CurrentIndex)
{
fgets(StrLine,MAXC,fp);//讀取一行
printf("%s",StrLine);//輸出
ret=1;
returnret;
}
}
else{//行內容太多StrLine會讀不到行結尾的情況
CurrentIndex++;
if(WhichLine==CurrentIndex)
{
fgets(StrLine,MAXC,fp);//讀取一行
printf("%s",StrLine);//輸出
ret=1;
returnret;
}
while(1){
if(NULL==fgets(StrLine,MAXC,fp))gotoEND;
L=strlen(ln);
if(' '==ln[L-1])break;
}
}
}
end:
fclose(fp);//關閉文件
returnret;
}

使用fgets函數,fgets是每次讀取一行。

使用memset來清除StrLine,防止上一次StrLine中的內容未清除。

滿意請採納,不懂請追問。

B. C語言 怎麼讀取文件的每一行的內容

(已修改)下面那段是我的checking.
還是不能嗎? 我做的是C,要存成[.c]
#include<stdio.h>

#define item 1000
main(){
FILE *fpt;
char num[item][10], temp[1000];
int i=0, j;

fpt = fopen("t1.txt","r");

while(fscanf(fpt, "%[^' '] ", num[i]) != EOF){
fscanf(fpt, "%[^\n]\n", temp);
i++;
}

for(j=0; j<i; j++)
printf("[%d] %s\n", j, num[j]);
fclose(fpt);
}

C. C語言怎樣讀取文本的每一行

可以使用fgets函數來實現。

1 函數名:
fgets
2 聲明形式:
char *fgets(char *buf, int bufsize, FILE *stream);
3 頭文件:
stdio.h

4 功能及參數說明:
從stream中讀取一行數據存到buf中。如果數據長度小於bufsize,那麼讀入整行數據,並將換行符轉換為字元串結束符\0。 如果數據長度超過bufsize,那麼只讀入bufsize大小的數據,並在結尾添加\0。
5 返回值:
成功,則返回第一個參數buf;
在讀字元時遇到end-of-file,則eof指示器被設置,如果還沒讀入任何字元就遇到這種情況,則buf保持原來的內容,返回NULL;
如果發生讀入錯誤,error指示器被設置,返回NULL,buf的值可能被改變。

D. C語言怎樣一行一行讀文件

文件有三行有兩種情況。一種是顯示是在屏幕上顯示三行,其實還是在一行,另一種是以換行符分割行。對第一種情況,遍歷統計字元個數,計算出第三行起始地址,對第二種遍歷以第二個換行符下一個地址作為第三行起始地址

E. C語言 如何一行行讀文件

#include
#include
void main()
{
char b[25];
//打開文件
FILE *fp;
fp = fopen("D:\\a.txt","r");
//獲取文件內容,每次讀一個字元,包括空格
for(int i=0;i<25;i++)
//fscanf(fp,"%c",&b[i]);
fgets(&b[i],2,fp);
fclose(fp);
//顯示讀取到的內容
for(int i=0;i<25;i++)
printf("%c",b[i]);
}

F. c語言怎樣按行讀取

區分讀取的源,有如下兩種情況:

1 從標准輸入讀取,即stdin。
可以使用gets函數:
char * gets(char *str);
該函數會從標准輸入中讀取一行數據,直到讀到\n,並將\n替換為字元串結束符\0,讀取到的數據以字元串形式存於str中。
需要注意的是,使用gets函數時,需要確保str指向空間大小,必須超過任意一行的長度,否則會出現越界操作。有些編譯器會報gets是不安全的,就是這個原因。

2 從文件讀取。
對於一個被打開的文件,如果其是可讀的,那麼可以通過fgets函數實現按行讀取。
char *fgets(char *buf, int bufsize, FILE *fp);
功能與gets類似,只是源不同。fgets從fp中讀一行數據存到buf中,同時會判斷bufsize,如果一行數據的長度超過了bufsize,那麼只讀入bufsize長度的數據,確保不會溢出。否則讀取整行。
由於在C語言中,標准輸入stdin也是以文件指針形式存在的,所以gets可以用
fgets(str, bufsize, stdin);
替代,這樣代碼量稍多一些,但可以更安全。

G. c語言如何從文件中讀入一行數據

關鍵技巧:
每行數據個數隨機,可用
c
=
fgetc(fin);
ungetc(c,fin);
檢查是否讀到
換行符或文件結束符。
例如:
a.txt
1
2
3
45
56
6
7
8
9
10
至於記錄每行數據個數,存放到數組,等等,可以自己補充完善。
程序:
#include
<stdio.h>
int
main(
)
{
file
*fin;
int
a,c;
fin=fopen("a.txt","rw");
while(1){
c
=
fgetc(fin);
if
(c==eof)
break;
if
(c=='\n')
{printf("\n==========\n");
continue;};
ungetc(c,fin);
fscanf(fin,"%d",&a);
printf("%d
",a);
}
fclose(fin);
return
0;
}

H. C語言如何讀取文本文件中的一行數據啊

用fstream(文件流),fstream
file
然後
file.getline(char*,int,char
a=『\n』)第一個是一個存儲字元串的指針,第二個是要讀取的最大長度,第三個是行結束符,默認是回車,函數說明就是當讀入的字元超過最大長度int或者遇到行結束符(『\n』)時就停止,而且這個很好用的(對於讀入和寫入),你看看文檔就會了,哈哈,給分啊。!!~~