[英]Read a text file line by line and retrieve the content of each line in C
說一個文本文件將像:
1, 2345, 7788, 463, ABC
2, 387, 1100, 321, CCC
2, 2222, 22222, 22, DSA
因此,此文本文件中有3行,我的項目需要我們實現一個函數,該函數逐行讀取此文本文件,並在讀取特定行時檢索每行的內容,然后檢查該行的內容。
例如,我將從第一行開始讀取此文件。 因此,當讀取第一行(1、2345、7788、463,ABC)時,我將首先需要將該行存儲到字符串中(例如,它是char [] str),然后需要將該str分成5個部分,每個部分都包含用逗號分隔的五個不同的歸檔內容,例如p1,p2,p3,p4和p5。 然后,我需要檢查p3是否為“ 1100”。 如果是,則關閉此文件並繼續執行程序,如果不是,那么我將需要繼續讀取第二行並執行相同的操作,顯然第二行的第三行是1100,因此在讀取后這行函數將終止。
現在有人可以告訴我如何實施嗎? 我是C語言的新手,我已經在網上搜索了有關fgets()的信息,例如:
if (fgets(str, 60, "text.txt")!=NULL){
puts(str);
}
但是在這里我看不到任何提示,表明此frets()逐行讀取文本文件。
提前致謝! :d
你要這個:
char str[60];
FILE* f = fopen("text.txt", "r");
if (f == NULL) exit(1);
while(fgets(str, 60, f) != NULL){
fputs(str, stdout);
}
fclose(f);
如何使用您的代碼檢查每一行?
使用@Mike中的代碼,添加以下內容:
char str[60];
FILE* f = fopen("text.txt", "r");
if (f == NULL) exit(1);
while(fgets(str, 60, f) != NULL){
if(strstr(str, "1100") //Add these lines to test for "1100"
{
puts("Found 1100!", stdout);//optional
puts(str, stdout);//optional
fclose(f);
return;
}
fputs(str, stdout);
}
fclose(f);
#include <stdio.h>
int main(){
char str[64];
int p1, p2, p3, p4;
char p5[16];
FILE *fp;
int i;
fp=fopen("text.txt", "r");
while(fgets(str, sizeof(str), fp)!=NULL){
if(sscanf(str, "%d, %d, %d, %d, %15s", &p1, &p2, &p3, &p4, p5)==5){
if(p3 == 1100)
break;
//do something
puts(str);
}
}
fclose(fp);
return 0;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.