Maison  >  Article  >  Tutoriel logiciel  >  Comment lire les deux lignes de données de caractères entre le début et la fin dans un document TXT en langage C

Comment lire les deux lignes de données de caractères entre le début et la fin dans un document TXT en langage C

WBOY
WBOYavant
2024-01-09 08:34:13725parcourir

Comment lire les données entre deux lignes de caractères dans un document TXT en langage C, par exemple entre le début et la fin

Supposons que la structure du fichier soit : 1E1F 0309 luan7 8 zao

2E2F 1518

commencer

12 39692

12 39712

9 39724

fin

commencer

14 39692

8 39724

fin

luan7 8 zao

qi qi guai guai

commencer

312 39692

142 39712

95 39724

fin

Contient plusieurs éléments de données de début et de fin

#include #include

principale( ) {

FILE *fin;

int a[1000],b[1000],n=0,i;

char one_line[80];

fin=fopen("abc.txt","r");

if (fin==NULL){printf("open file errorn");return 0;}

Lab1 : pendant que (1) {

if ( fgets(one_line,80,fin)==NULL){

printf("Le financement ne peut plus commencer");goto Lab2;}

if (strncmp(one_line,"begin",5)==0)break;

}

pour (i=0;i

if (strncmp(one_line,"end",3)==0)break;

sscanf(one_line,"%d %d",&a[n],&b[n]);

n++;

}

aller au Lab1;

Lab2 : fclose(fin);

printf("J'ai lu:n");for (i=0;ireturn 0;

}

Que faire si des points-virgules sont utilisés pour extraire des données d'un txt en utilisant le langage C

fgets lit chaque ligne de données puis utilise strchr pour trouver la position où le point-virgule apparaît, puis effectue la conversion correspondante !

C'est un exemple que j'ai écrit pour lire une chaîne spécifiée. Référez-vous simplement à ceci et modifiez-la La fonction de chaîne en nombre à virgule flottante atof

.

#inclure

#inclure

#définir N°10

int readstr(const char* str,char p[][128],int plen,int savepos);

int main()

{

char str[]="2012/10/12;123456.0;456123.0";

date de caractère[N][128]={0};

int len=readstr(str,date,N,0);

pour (int i=0;i

{

printf("%sn",date[i]);

}

retour 0;

}

int readstr(const char* str,char p[][128],int plen,int savepos)

{

if(plen

{

printf ("Le tableau est trop petit, veuillez changer l'emplacement de stockage!"

);

retour 0;

}

static int len=0;

char *find=strchr(str,';');

if(find==NULL)

{

strcpy(p[savepos],str);

len++;

retour len;

}

autre

{

strncpy(p[savepos],str,find-str);

len++;

readstr(find+1,p,N,len);

}

retour len;

}

Comment lire la ligne de données suivante d'une chaîne spécifiée en txt en utilisant le langage C

Utilisez fgets pour lire une ligne et sscanf pour lire la première colonne de données

Ce qui suit suppose que la première colonne de données est utilisée comme chaîne et est lue en utilisant le format sscanf(buf,"%s",....

De même, utilisez %d pour les entiers et %f %lf pour les virgules flottantes....

#inclure

#inclure

main(){

char buf[100];

char col[100][30];

int n=0;

FILE *fp = fopen("a.txt", "r");

while ( fgets(buf, 100, fp) != NULL) {

if (sscanf(buf,"%s",col[n]) == 1){printf("%sn", col[n] };

;

}

retour 0;

}

Si vous souhaitez lire le premier numéro de chaque ligne, (lire un seul chiffre, utilisez le format %1d) :

int x[100];

...

while ( fgets(buf, 100, fp) != NULL) {

if (sscanf(buf,"%1d",&x[n]) == 1){ printf("%dn",x[n]);n++;};

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer