Heim > Artikel > Software-Tutorial > So lesen Sie die beiden Zeilen mit Zeichendaten zwischen Anfang und Ende in einem TXT-Dokument in der Sprache C
Angenommen, die Dateistruktur ist: 1E1F 0309 luan7 8 zao
2E2F 1518
beginnen
12 39692
12 39712
9 39724
Ende
beginnen
14 39692
8 39724
Ende
luan7 8 zao
qi qi guai guai
beginnen
312 39692
142 39712
95 39724
Ende
Enthält mehrere Teile von Anfangs- und Enddaten
#include #include
main( ) {
DATEI *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:while(1){
if (fgets(one_line,80,fin)==NULL){
printf("Kann nicht mehr finanziert werden");goto Lab2;}
if (strncmp(one_line,"begin",5)==0)break;
}
für (i=0;i
if (strncmp(one_line,"end",3)==0)break;
sscanf(one_line,"%d %d",&a[n],&b[n]);
n++;
}
gehe zu Lab1;
Lab2: fclose(fin);
printf("I read:n");for (i=0;ireturn 0;
}
fgets liest jede Datenzeile und verwendet dann strchr, um die Position zu finden, an der das Semikolon erscheint, und führt dann die entsprechende Konvertierung durch!
Dies ist ein Beispiel, das ich geschrieben habe, um eine bestimmte Zeichenfolge zu lesen. Sie können darauf zurückgreifen und die Zeichenfolge in eine Gleitkommazahlfunktion ändern
#includeint readstr(const char* str,char p[][128],int plen,int savepos);
int main()
{
char str[]="2012/10/12;123456.0;456123.0";
char date[N][128]={0};
int len=readstr(str,date,N,0);
for (int i=0;i
printf("%sn",date[i]);
}
return 0;
}
int readstr(const char* str,char p[][128],int plen,int savepos)
{
if(plen {
printf („Array ist zu klein, bitte ändern Sie den Speicherort!“);
return 0;
}
static int len=0;
char *find=strchr(str,';');
if(find==NULL)
{
strcpy(p[savepos],str);
len++;
return len;
}
sonst
{
strncpy(p[savepos],str,find-str);
len++;
readstr(find+1,p,N,len);
}
return len;
}
So lesen Sie die nächste Datenzeile einer bestimmten Zeichenfolge in txt mit der Sprache C
Im Folgenden wird davon ausgegangen, dass die erste Datenspalte als Zeichenfolge verwendet und im Format sscanf(buf,"%s",...) gelesen wird.
Verwenden Sie in ähnlicher Weise %d für Ganzzahlen und %f %lf für Gleitkommazahlen....
#include
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]);
}
return 0;
}
Wenn Sie die erste Zahl jeder Zeile lesen möchten (lesen Sie nur eine Ziffer, verwenden Sie das Format %1d):
int x[100];
...
while ( fgets(buf, 100, fp) != NULL) {
if (sscanf(buf,"%1d",&x[n]) == 1){ printf("%dn",x[n]);n++;};
Das obige ist der detaillierte Inhalt vonSo lesen Sie die beiden Zeilen mit Zeichendaten zwischen Anfang und Ende in einem TXT-Dokument in der Sprache C. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!