[C++] strstr funktion const char problem

elbdom

Mitglied
Guten Tag Tutorials.de Comunity,

ich habe mir ein programm geschrieben was mir aus einer php datei eine stelle raussuchen soll das funktioniert auch soweit alles sehr gut
nur mein problem ist das der besuchte begriff bez die zahl immer unterschiedlich ist also angepasst werden müsste und da sind wir schon bei meine problem die char variable ist eine constante und ich kann sie somit von außen nicht ändern ohne das das komplete programm abstürzt

hier mal der scource code:

Code:
#include <iostream>
#include <fstream>
#include <stdexcept>

using namespace std;

char* pch;
char* gbCount = "2432";

int main (void)
{
  //cout << "es ist gerade: "  << gbCount << endl;
  //cin << gbCount;
  //cin.get();
  //cout << "nun ist es: " << gbCount << endl;
  //cin.get();

  char line[999999];

  ifstream infile ("download.php", ios::in);

  if (!infile)
    {
      cout << "Kein File :-(" << endl;
      return 1;
    }

  while (infile.getline (line, 999999))
    {
      if(pch = strstr (line, gbCount ))
      {
          cout << "eine neue Naricht" << endl;
          cin.get();
      }
    }
  cout << endl;
  cin.get();

  return 0;
}

das was kommentiert ist das womit das programm abstürzt aber ansonsten geht das programm vollständig

vll hat jemand von euch ja eine idee wie ich das lösen kann oder kennt eine alternative

danke schon mal im voraus

gruß
elbdom
 
Hi.

gbCount müßte so definiert werden:
C++:
char gbCount[] = "2432";
Wobei du dann sicherstellen mußt, das du max. 4 Zeichen drin speicherst.

Warum nimmst du nicht einen std::string?

Gruß
 
Hi.

gbCount müßte so definiert werden:
C++:
char gbCount[] = "2432";
Wobei du dann sicherstellen mußt, das du max. 4 Zeichen drin speicherst.

Warum nimmst du nicht einen std::string?

Gruß

ja thx geht perfekt ^^

und in wiefern meinst du das mit den std::string?
nen beispiel wäre nett ^^

jetzt bin ihn aber an ein nächstes problem gestoßen wie kann ich die zahl in der char variable um 1 erhöhen? ^^'
lese die zahl aus einer txt datei aus wiso das also relevant ist
 
Hmmm..glaub das es da keine fertige Funktion gibt, zum String inkrementieren
Machs zB so
C++:
sprintf(bgCount,"%d",atoi(gbCount)+1);

Gruß
 
und in wiefern meinst du das mit den std::string?
C++:
#include <string>

using namespace std;

string gbCount = "1234";

int main() {
  cout << "es ist gerade: "  << gbCount << endl;
  cin >> gbCount;
  cout << "nun ist es: " << gbCount << endl;
}
jetzt bin ihn aber an ein nächstes problem gestoßen wie kann ich die zahl in der char variable um 1 erhöhen? ^^'
Warum liest du es denn dann überhaupt als String aus und nicht gleich als Integer?
C++:
#include <sstream>

unsigned int gbCount;

if (cin >> gbCount) {
  cout << "es ist gerade: "  << gbCount << endl;
  ++gbCount;
  cout << "nun ist es: " << gbCount << endl;
}

ostringstream format;
format << gbCount;

strstr(line, format.str().c_str());
Gruß
 
Zurück