Ich habe gesucht, wie ein dynamischer Puffer mit fgets
zuweisen, aber ich kann nicht scheinen, um es in diesem Beispiel zu bekommen. Die Datei hat zwei Nummern unbekannter Länge, die durch einen Leerraum getrennt sind. Für jede Zeile liest es jedes Zeichen bis ' '
und \n
und druckt es.Dynamische Puffer fgets in C
char *ptr;
char line[MAX];
while(fgets(line, sizeof line , fp) != NULL){
ptr = line;
for(i=0; i<2; i++){
while(*ptr && (*ptr) != ' '){
if(*ptr == ' ')
break;
k = (*ptr) - '0';
if(k != -38) // wont print '\n'
printf("%d", k);
ptr++;
}
while(*ptr && (*ptr) != '\n') {
if(*ptr == ' '){
ptr++;
continue;
}
k = (*ptr) - '0';
printf("%d", k);
ptr++;
}
}
}
Kann mir jemand eine Idee, wie
line
dynamisch zu machen, während nochptr
mit auf diese Weise?
Was meinst du mit _dynamic_? Die Größe? Nun, das ist nicht möglich. Wenn Sie nicht die tatsächlichen Daten gelesen haben, wie werden Sie dann wissen, wie viel Speicher Sie benötigen? –
Alle Möglichkeiten, die ich mir vorstellen kann, sind ziemlich ineffizient. – user3078414
Sie sagen "dynamisch", was normalerweise bedeutet, dass Sie versuchen, einen beliebig großen Puffer für eine beliebig große Zeile dynamisch zuzuordnen, aber es sieht nicht so aus, als ob Sie das versuchen. –