Prob beim parsen eines strings



  • Hallo.

    Also ich will nen string aus ner datei parsen.
    Und ich habe, dass Problem das ich bei strtok() auch \n mit rein bringen müsste also wo nen zeilenumbruch ist statt ; (als Trennzeichen) will ich dann auch ne binäre null rein machen. So das er halt die erste zeile durch geht und immer nach ; sucht und dann aber nach \n such. Aber bei das funktioniert weil strtok() ja vorne nen pointer braucht. Also kann ich da nicht einfach strtok("\n," ") schreiben. weil der da ja keine binäre null ist. sondern nen \n.
    Hoffe ihr versteht das, aber ist halt blöd zu formulieren.
    Danke im voraus
    mfg The Crane



  • #include <stdio.h>
    #include <stdlib.h>
    #include <iostream>
    #include <string.h>
    
    using namespace std;
    struct schule_schueler{
                           char lfdnr[50];
                           char name[50];
                           char schule[50];
                           char schulform[50];
                           };
    
    main()
    {     FILE *fp;
          char string[200];
          char *token;
          int i=0;
          char *phelp;
      //   phelp= schule_schueler->lfdnr; funktioniert nicht
    
          fp= fopen("D:\\Daten.csv","r");
          if(fp==NULL)cout<<"Die datei existiert nicht."<<endl;
          fscanf(fp,"%s", string);
    
          token = strtok(string,";\n");
          cout<<token<<" ";
          if(feof(fp)!=';'){
    
               while ((token=strtok(0,"\n;"))){
                cout<<token<<" ";
               }
          }    
    
          else if(feof(fp)=='\n')
          {
              while ((token=strtok(string,"\n"))){
                cout<<token<<" ";
               }    
      }    
    
          if(fp!=NULL)fclose(fp);
    
          system("PAUSE");
          return 0;
    }
    

    also hab ne datei.csv vorliegen in der es so geschrieben steht:
    1;SCHUELER_1;MES;BG
    2;SCHUELER_2;MES;FOS

    aber beim schleifendurchlauf bricht er nach der ersten zeile ab.
    im endeffekt will ich den ausgelesenen string auch noch in die struct-variablen abspeicher. aber ich scheidere schon beim ersten problem...könnt ihr mir helfen? bin noch nen ziemlicher anfänger...!!!bitte helft mir


Anmelden zum Antworten