webForumDet fria alternativet

Inläsning av taggar från fil

C/C++

1 svar · 212 visningar · startad av Mattias

Medlem sedan mars 2000205 inlägg
Frågan#1

Jag har en textfil som består av XML-liknande taggar av typen: <starttagg>12345</sluttagg>. Vill kunna räkna alla starttaggar som heter <art_ID> i filen, dvs INTE sluttaggarna. Problemet är att programmet även verkar räkna med sluttaggarna eftersom talet i variabeln "n_artiklar" blir dubbelt så stor som antalet artiklar i filen. Därför undrar jag vad som är fel i nedanstående kod. Tänkte också höra om det finns nåt smidigare sätt i C++ att "hitta" taggar i text. Har programmerat C tidigare och därför inte så bekant med C++ stränghantering.

  ch = fin.get();

 while(fin.fail() == false ) {

    if(ch == '<') {
      ch = fin.get();
      i=0;
      while(ch != '>'){
 kommando[i] = ch;
 ch = fin.get();
 i++;
      }
      kommando[i] = '\0';
    }
    if((strcmp(kommando, "art_ID")) == 0 ){
      //cout << n_movies << " " << kommando << endl;
      n_artiklar = n_artiklar + 1;
    }
    ch = fin.get();
  }
Medlem sedan juni 200010 432 inlägg
#2

Är det inte bara att lägga in ytterligare en kontroll om "<" åtföljs av "/" eller inte?

1034 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
894 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
897 ms — ändringar (db)