Ich brauche einen Hinweis darauf, wie ich weiß, wann ich eine Zeichenfolge aus einer Datei speichern soll, nachdem ich ein Leerzeichen zwischen den Wörtern angeklickt habe. Nachdem ich eine Datei geöffnet und gelesen habe, zum Beispiel: Die erste Zeile, die da ist ist: 427 671 +. Ich muss "427" in einem Array von int speichern, dasselbe mit "671" und "+" in einer Variablen.Wie kann ich aufhören, Zeichen aus einer Datei zu speichern, wenn ein Leerzeichen vorhanden ist?
Bis jetzt habe ich herausgefunden, wie man die ganze Linie liest und es druckt, aber das Problem, das ich habe, ist, Zeichen durch Zeichen zu lesen und es zu speichern, bevor ich ein Leerzeichen trete.
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <float.h>
#include <Laboratorio.h>
#include <string.h>
int main(int argc, char **argv) {
FILE *datos;
FILE *resultados;
char bin[64]="",hex[16]="";
int oct[21];
ep = fopen (argv[1], "r");
if (ep==NULL) {
printf("Archivo vacio.");
return 0;
}else{
while (fgets(bin,64,ep)!=NULL){
printf("%s",bin);
}
fclose(ep);
}
}
Wenn Sie die Datei nicht öffnen können, sollten Sie die Fehlermeldung an stderr ausgeben und einen Wert ungleich null zurückgeben. zB 'if (ep == NULL) {perror (argv [1]); return EXIT_FAILURE;} ' –
Verwenden Sie [' strtok() '] (http://stackoverflow.com/questions/3889992/how-does-strtok-split-the-string-into-tokens-in-c), um sie zu teilen Sie treffen auf einen Leerraum. –
Sie haben viele Möglichkeiten. Eine besteht darin, 'scanf()' und den '% s' Konvertierungsspezifizierer zu verwenden; Es bleibt jedes Mal im weißen Bereich stehen. Eine weitere Möglichkeit ist die Verwendung von Token-Code in Zeilen beim Lesen jeder Zeile - 'strtok()' usw. (verwenden Sie 'strtok_r()' oder 'strtok_s()', wenn sie verfügbar sind, aber alle die ursprüngliche Zeichenfolge ändern) oder Funktionen wie 'strpbrk()' und 'strspn()' und 'strcspn()'. Es gibt zahlreiche Fragen zu SO über die Konvertierung von Postfix zu Infix und verwandte Probleme; sie können auch gut helfen. –