Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » text einlesen und nächstes Wort in ne char variable schreiben

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
04.10.2008, 12:03 Uhr
steffenxyz



Hi,
ich bräucht kurz ne Hilfe für ein etwas größeres Prog. Ich möcht das mein Prog aus ner Datei z.B "C\test.txt" mit ifstream oder sowas einliest und beim Vorkommen des Wort "Beispiel" das nächste Wort in ne char Variable schreibt.
Hier mal der Ansatz:


C++:
#include <iostream>
#include <fstream>
using namespace std;
char get_name(){
     char ch;
     char name[127];
     ifstream f1("C:\\test.txt");
     //Text mit mehreren Wörtern
     while( ch = f1.get()){
            if( ch = EOF ){
                cout<< "Ende der Datei oder Fehler"<<endl;
                break;
            }
     }
     /*Und hier soll das Programm nach dem Wort "beispiel" suchen und das nächste Wort in die Variable "name" schreiben--> Leider kp wie das gehn soll*/
    
     return name;
}

int main(void){
    char test = get_name();
    cout <<test;    
    system("PAUSE");
    return 0;
}


Keine Ahnung auch ob der Teil mit ifstream richtig ist. Hab versucht es durch überfliegen des kapitels mit fstream rauszufinden aber war dann doch zu schwer
Nur ein Teil des ganzen Progs aber so sollte der Teil aussehen
Leider fehlen da noch einige Sachen, bin noch ned so weit in C++. Aber bräuchte das für das Prog.

Hoffe jemand kann mir helfen

Danke
Steffen
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
04.10.2008, 13:00 Uhr
0xdeadbeef
Gott
(Operator)


Wörter in Buchstaben zu schreiben, dürfte sich als ausgesprochen schwierig erweisen. Versuch's stattdessen mit einem string:

C++:
#include <string>

int main() {
  std::string s = "Der schnelle, faschistische Fuchs springt über den bekifften Hund.";
}


Was die Datei angeht, es hängt ein bisschen davon ab, wie sie aufgebaut ist. Wenn es sich einfach um eine durch whitespaces getrennte Wortliste handelt, etwa so:

C++:
std::string get_name(std::istream &in) {
  std::string token;

  while(in) {
    in >> token;
    if(token == "beispiel") {
      in >> token;
      break;
    }
  }

  return token;
}


...allerdings enthält der Code jetzt keinerlei Fehlerbehandlung. Ich hab ja auch keine Ahnung, wie du dir die ggf. vorstellst.

Davon aber mal ganz ab...bist du sicher, dass du dich schon an ein größeres Projekt ranwagen solltest? Diese Dinge sind eigentlich ziemlich grundlegend, und größere Projekte haben die unangenehme Angewohnheit, komplex zu sein...
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
04.10.2008, 13:39 Uhr
steffenxyz



Erstmal danke für deine Hilfe!
ich weiß nich ob ichs vllt falsch erklärt hab. Das Programm soll von ner Datei z.B die auf der Partition C: mit dem namen "text.txt" liegt einlesen und in dieser Datei das Wort "Beispiel" suchen. Danach soll es das nächste Wort von der Datei return zuückgeben. Wenn z.B die Datei so aussieht:
"Irgendwas nochwas Beispiel dieseswort noch was sonstiges"
Dann brauch ich das Wort das nach "Beispiel" steht, dass sich immer verändert. Und dieses Wort soll dann in eine char/string variable geschrieben werden die die Funktion dann zurückgibt
Ich hoff jetzt habt ihrs verstanden. Wenn nich einfach nachfragen.

Gruß Steffen
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
04.10.2008, 13:50 Uhr
0xdeadbeef
Gott
(Operator)


Äh...genau das macht der Code, den ich dir vorgegeben habe. Du musst nur noch die Datei öffenen und den Stream an die Funktion übergeben.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
04.10.2008, 14:27 Uhr
steffenxyz



ähm soll ich die main dann so aussehen beim aufrufen?


C++:
int main(void){
ifstream f1("C:\test.txt");
string s = string get_name(f1);
cout<<s<<endl;
system("PAUSE);
return 0;
}


Dieser Post wurde am 04.10.2008 um 14:28 Uhr von steffenxyz editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: