Bearbeiten einer Datei?



  • Hai,
    habe danach gesucht, leider nichts gefunden, was bei mir funktioiert.

    Habe folgenden Quelltext:

    csv = fopen("Namensliste.csv","r");
                 if(csv != NULL)
                 {
                        while(!feof(csv)) 
                        {
                                fscanf(csv,"%c",string);
                                printf("%c\n",string);
                        }
                 }
                 else
                 {
                     printf("Datei konnte nicht geoeffnet werden!\nBeliebige Taste um das Programm zu beenden...");
                     getch();
                 }
    

    Ich finde einfach keinen Fehler. Hat jemand eine Idee? ... Ist übrigens so, das mit in jeder Zeile nur ein Komma geschrieben wird.

    Danke schonmal



  • Ah ja. Sehr ausführlich :p

    1. Was hat "string" für einen Typ?
    2. Was steht in der Datei überhaupt drin? Lauter Kommas? 😃

    Vermutlich:

    fscanf(csv,"%s",string);
    printf("%s\n",string);
    

    Aber nur vermutlich.



  • Problem war wirklich das %c. Mit %s funktioniert es.

    Jetzt habe ich ein anderes Problem.
    Würde gerne einzelne "Spalten" der Datei ändern.

    CSV-Datei:

    Nr;Vorname;Nachname;Postleitzahl;Ort
    1;full;mann;12345;Blub;
    usw...

    Damit meine ich, dass ich gerne aussortieren würde nach Ort.
    Kommen Personen aus "Blub", sollen sie in eine extra Datei geschrieben werden. Mit allen Daten die zuvor vorhanden waren. (Name usw...)

    Hat da jemand eine Idee, oder ein Tutorial was diesem ähnlich kommt? Oder ist meine Idee gar unmöglich?

    Danke schonmal.
    Hier der komplette Quelltext des Programms:
    (Ist mit eingabe)

    #include <cstdlib>
    #include <iostream>
    #include <conio.h>
    #include <stdio.h>
    
    int main(int argc, char *argv[])
    {
        int nr;
        nr = 0;
        char vorname[50];
        char name[50];
        int plz;
        int i;
        char string[100];
        plz = 0;
        char ort[100];
        FILE *csv;
        char weiter;
        int auswahl;
        auswahl = 0;
    
        printf("Namensliste V1.0\n\n");
        printf("Programmart auswaehlen:\n\t- 1 = Daten eingaben\n\t- 2 = Daten ausgeben\n\n");
        auswahl = getch();
        system("cls");
        switch(auswahl)
        {
            case '1': 
                 csv = fopen("Namensliste.csv","wt");
                 fprintf(csv,"Nr;Vorname;Nachname;Postleitzahl;Ort\n");
                 printf("\t\t\tDATEN EINGABE\n\n\n");
                 do
                 {
                   nr = nr + 1;
                   printf("Vorname: ");
                   gets(vorname);
                   printf("Name: ");
                   gets(name);
                   printf("Postleitzahl: ");
                   scanf("%d", &plz);
                   fflush(stdin);
                   printf("Ort: ");
                   gets(ort);
                   fprintf(csv,"%d;%s;%s;%d;%s;\n", nr, vorname, name, plz, ort);
                   printf("Nr\tVorname\tNachname\tPLZ\tOrt\n%d\t%s\t%s\t%d\t%s\n\n", nr, vorname, name, plz, ort);
                   printf("Weiteren Datensatz eingeben?\n <J>a / <N>ein\n\n");
                   weiter = toupper(getch());
                   if(weiter != 'J' & weiter != 'N')
                   {
                     do
                     {
                            printf("Weiteren Datensatz eingeben?\n <J>a / <N>ein\n\n");
                            weiter = toupper(getch());
                     }
                     while(weiter != 'J' & weiter != 'N');
                   }                 
                 }
                 while(weiter == 'J');
                 fclose(csv);
                 break;
            case '2':
                 csv = fopen("Namensliste.csv","r");
                 if(csv != NULL)
                 {
                        while(!feof(csv)) 
                        {
                                fgets(string,100,csv);
                                printf("%s\n",string);
                        }
                        getch();
                 }
                 else
                 {
                     printf("Datei konnte nicht geoeffnet werden!\nBeliebige Taste um das Programm zu beenden...");
                     getch();
                 }
                 fclose(csv);
                 break;
            default:
                 printf("Falsche eingabe!!! Beliebige Taste um Programm zu beenden...");
                 getch();
                 return 0;
        }
    }
    

Anmelden zum Antworten