Wie kann ich die Linien trennen, die von einer Rohrleitung kommen. In dem Rohr ist dieser Text:Aus Rohr Linie für Linie in C lesen
HALLO:500\n
TEST:300\N
ADAD
ADAWFFA
AFAGAGAEG
Ich möchte die Zeilen aus dem Rohr trennen, weil ich die Werte in Variablen speichern möchten.
Hier ist mein c-Code:
#include <stdio.h>
#include <stdlib.h>
#define BUFFERSIZE 1
int main(int argc, char **argv){
unsigned char buffer[BUFFERSIZE];
FILE *instream;
int bytes_read=0;
int buffer_size=0;
buffer_size=sizeof(unsigned char)*BUFFERSIZE;
/* open stdin for reading */
instream=fopen("/dev/stdin","r");
/* did it open? */
if(instream!=NULL){
/* read from stdin until it's end */
while((bytes_read=fread(&buffer, buffer_size, 1, instream))==buffer_size){
fprintf(stdout, "%c", buffer[0]);
}
}
/* if any error occured, exit with an error message */
else{
fprintf(stderr, "ERROR opening stdin. aborting.\n");
exit(1);
}
return(0);
}
Ist dies der richtige Weg aus der Leitung für die beste Zeile für Zeile zu lesen?
'für das Beste' ist eine subjektive Frage. Stehen Sie wirklich vor einem Problem? – abasu
Ersetzen Sie 'fread' durch [' fgets'] (http://pubs.opengroup.org/onlinepubs/009695399/functions/fgets.html). –