c語言逐行讀取
㈠ c語言 如何一行行讀文件
C語言中,使用fgets函數遍可以一行行讀取文件。
1、fgets函數:
原型:char
*
fgets(char
*
buf,
int
bufsize,
FILE
*
stream);
功能:從文件結構體指針stream中讀取數據,每次讀取一行。
說明:讀取的數據保存在buf指向的字元數組中,每次最多讀取bufsize-1個字元(第bufsize個字元賦值為\0)。如果該行不足bufsize個字元,則讀完該行就結束,如果該行超過bufsize-1個字元,則fgets只返回一個不完整的行,buf緩沖區以\0字元結束,下一次fgets調用會繼續讀取該行剩餘的字元;
頭文件:stdio.h;
返回值:若讀入成功,返回與參數buf相同的字元指針,若讀入過程中遇到EOF或發生錯誤,返回NULL指針。所以當遇到返回值為NULL的情況時,應使用ferror或feof函數檢查是發生錯誤還是遇到EOF。
2、常式:
#include
int a;
char b,c[100];
int main(){
FILE * fp1 = fopen("input.txt", "r");//打開輸入文件
FILE * fp2 = fopen("output.txt", "w");//打開輸出文件
if (fp1==NULL || fp2==NULL) {//若打開文件失敗則退出
puts("不能打開文件!");
rturn 0;
}
fscanf(fp1,"%d",&a);//從輸入文件讀取一個整數
b=fgetc(fp1);//從輸入文件讀取一個字元
fgets(c,100,fp1);//從輸入文件讀取一行字元串
printf("%ld",ftell(fp1));//輸出fp1指針當前位置相對於文件首的偏移位元組數
fputs(c,fp2);//向輸出文件寫入一行字元串
fputc(b,fp2);//向輸出文件寫入一個字元
fprintf(fp2,"%d",a);//向輸出文件寫入一個整數
fclose(fp1);//關閉輸入文件
fclose(fp2);//關閉輸出文件,相當於保存
return 0;
}
㈡ C語言怎麼實現逐行讀取指定字元串丫
你這東西是linux環境下的東西吧。。用shell腳本,擴展了正則表達式的egrep就行了
egrep 'RX|TX' input.txt > output.txt
如果是C語言的話,用readline逐行逐行讀取,找到開頭,讀入RX當行,再讀入下一行。之後同樣的繼續readline掃描後面字元串就行了。。
㈢ 關於C語言中文本文件的逐行讀取的實現
#include <stdio.h>
#include <stdlib.h>
#define LINE 1024
char *ReadData(FILE *fp, char *buf)
{
return fgets(buf, LINE, fp);//讀取一行到buf
}
void someprocess(char *buf)
{
printf("%s", buf);//這里的操作你自己定義
}
int main()
{
FILE *fp;
char *buf, filename[20], *p;
printf("input file name:");
gets(filename);
if ((fp=fopen(filename, "r"))==NULL) {
printf("open file error!!\n");
return;
}
buf=(char*)malloc(LINE*sizeof(char));
while(1) {
p=ReadData(fp, buf);//每次調用文件指針fp會自動後移一行
if(!p)//文件讀取結束則跳出循環
break;
someprocess(buf);
}
return 0;
}
不懂請追問,滿意請採納,謝謝!
㈣ C語言讀取文件內容,按行讀
1通過fopen函數打開文本,例如file
*fp=fopen("in.txt","r");//返回一個file類型的句柄
2然後就可以通過fcanf()函數對txt文本進行讀取
3操作完文本之後用fclose()函數
關閉已經打開的文件。
#include
int main()
{
int data;
file *fp=fopen("in.txt","r");
if(!fp)
{
printf("can't open file\n");
return -1;
}
while(!feof(fp))
{
fscanf(fp,"%d",&data);
printf("%4d",data);
}
printf("\n");
fclose(fp);
return 0;
}
㈤ C語言讀取文件內容,按行讀
C語言逐行讀取文件內容 ,參考代碼如下:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#defineMAX_LINE1024
intmain()
{
charbuf[MAX_LINE];/*緩沖區*/
FILE*fp;/*文件指針*/
intlen;/*行字元個數*/
if((fp=fopen("test.txt","r"))==NULL)
{
perror("failtoread");
exit(1);
}
while(fgets(buf,MAX_LINE,fp)!=NULL)
{
len=strlen(buf);
buf[len-1]='