So vermeiden Sie, Semikolon zu lesen; in FILE und speichern sie in Variable?Wie ignoriere ich ';' in einer Datei wenn fscanf?
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(void)
{
char gstitem[6], gstname[30],;
int gstquant, itemquant;
float gstprice;
char string[10];
printf("Purchase items fuction\n\n");
FILE *gstPtr; //pointer to the gst.txt
gstPtr = fopen ("gst.txt", "r+");
printf("Enter an item code: ");
fgets(string,10,stdin);
(!feof(gstPtr));
{
fscanf(gstPtr,"%[^;]s %[^;]s %[^;]f %[^;]d\n",gstitem,gstname,&gstprice,&gstquant);
printf("%s %s %f %s\n",gstitem,gstname,gstprice,gstquant);
}
fclose(gstPtr);
}
Dies ist die Datei, die i vv
Ihr Bild ist eine kleine Menge an Text: bitte per Post als Text als Teil der Frage. Die Idee des [Minimalen, Kompletten und Verifizierbaren Beispiels] (http://stackoverflow.com/help/mcve) ist, dass Leser den Code und seine Eingabedaten kopieren und ausprobieren können. –
Nicht das Ergebnis von 'fscanf()' ist das [_Road to Perdition_] (http://www.dictionary.com/browse/perdition), – chux
Was ist der Zweck von 'fgets' vor der Schleife? Und was ist die Schleifenkontrolle '(! Feof (gstPtr));' [sic] soll das sein? Abgesehen davon, dass man bei der Verwendung von 'feof' vorsichtig ist (http://stackoverflow.com/questions/5431941/why-is-while-feof-file-always-wrong), ist die Art und Weise, wie man die Schleife kontrolliert, die Rückkehr Wert von 'fscanf', wie' while (fscanf (...) == 4) {...} ' –