BlackSmith Geschrieben 4. November 2009 Geschrieben 4. November 2009 Hallo Es ist gerade extrem wichtig, bin zurzeit in der schule und war 2 Wochen wegen eines Grippe infekts flach. Ich muss mit einem mitschüler ein Programm schreiben der in einer Textdatei die wörter " Der, Die, Das" durch "1, 2, 3" ersetzt ( ja ich weiß das ist eigentlich nicht wirklich schwer aber mir fehlt wegen der fehlzeit leider die nötigen kenntnisse, und mein kolege versteht sowieso nicht wirklich viel vom Programmieren) Es wäre wirklich Super wenn ihr mir schnell helfen würdet habe bis 12 uhr zeit. MfG BlackSmith Help me :-( Zitieren
r26t01 Geschrieben 4. November 2009 Geschrieben 4. November 2009 Wie weit bist du denn schon? Ich würde mit einer If-Anweisung die Artikel durch die Zahlen ersetzen lassen. Zitieren
BlackSmith Geschrieben 4. November 2009 Autor Geschrieben 4. November 2009 Wie weit bist du denn schon? Ich würde mit einer If-Anweisung die Artikel durch die Zahlen ersetzen lassen. Ich bin 19 Jahre bald 20. Ja das problem bei mir ist ich habe nicht wirklich viel ahnung, weiß nur das ich mit #include <stdio.h> main() Anfangen muss,mein lehrer hat mir gesagt dass es nun mal meine schuld ist auch wenn ich krank bin , da hatt er ja auch recht aber es geht leider nicht anders ;-/ MfG BlackSmith Zitieren
r26t01 Geschrieben 4. November 2009 Geschrieben 4. November 2009 Ich meine vom Code her Wir haben auch noch nicht viel gemacht. Aber die Bibliotheken werden bei unserem Compiler schon direkt eingebunden. Müsst ihr den Text in der .exe Datei selbst eingeben oder ist der schon im Quellcode vorgegeben? Bei ersterem würde ich eine Variable "Eingabe" (oder so) wählen und die dann mit einer if-Anweisung nach der, die, das durchsuchen lassen. (ob das nun die beste Lösung ist und generell funktioniert kann ich dir nicht sagen, bin selbst noch nicht allzu bewandert im Programmieren, aber so würde ich an die Sache rangehen.) Zitieren
BlackSmith Geschrieben 4. November 2009 Autor Geschrieben 4. November 2009 Oh sorry habe mich verlesen dachte wie alt :upps um ehrlich zu sein noch garnicht ich bin noch am anfang. Mit der if anweisung meinst du jetzt Int oder? weiß nur nicht wie ich dasprogramm aufbauen soll. also ich denke mir das so if (der) .. then .... else aber bei mir ist das hauptproblem der aufbau ich habe keine ahnung wie ich das programm richtig schreiben soll Zitieren
Micha82 Geschrieben 4. November 2009 Geschrieben 4. November 2009 der syntax aufbau ist bei c code meist: includes... main() { definitionen + initialisierungen anweisungen bedingungen (alles was das programm machen soll...) } heißt zB #include <stdio.h> int main(int argc, char *argv[]) { printf("Hallo Welt!!!\n"); return 0; } zu deinem problem: 1. datei mit dem text öffnen // datei zum rausschreiben öffnen 2. text einlesen 3. überprüfen ob der die das... 4. wenn ersetzen durch 1 2 3 5. sonst bleibt 6. rausschreiben in neue datei 7. dateien schließen Zitieren
BlackSmith Geschrieben 4. November 2009 Autor Geschrieben 4. November 2009 Vielen Dank ich werde es gleich mal aus probieren Zitieren
TDM Geschrieben 4. November 2009 Geschrieben 4. November 2009 Ausagekräftiger Threadtitel... C oder C++? Wenigstens mal Pseudocode (siehe Micha82), Struktogramm, PAP aufgestellt? Zitieren
BlackSmith Geschrieben 4. November 2009 Autor Geschrieben 4. November 2009 Ja..lol ich bekomme es einfach nicht hin ohman ich bin noch ganz am anfang ;-( c++ ... Zitieren
Klotzkopp Geschrieben 4. November 2009 Geschrieben 4. November 2009 ohman ich bin noch ganz am anfang ;-(Dann solltest du dir zuerst die fehlenden Kenntnisse aneignen. Ohne die wirst du diese Aufgabe, auch mit Hilfestellung, nicht lösen können. Zitieren
BlackSmith Geschrieben 4. November 2009 Autor Geschrieben 4. November 2009 Ja genau das ist ja das problem die habe ich nicht ich muss den mist unbedingt ferit gbekommen Zitieren
TDM Geschrieben 4. November 2009 Geschrieben 4. November 2009 Grundlagen der objektorientierten Programmierung in C++ Zitieren
skejcik Geschrieben 4. November 2009 Geschrieben 4. November 2009 (bearbeitet) { int zahl; cout <<"********************************************************\n"; cout <<" Für BlackSmith :-)\n"; cout <<"********************************************************\n"; cout <<"Geben Sie bitte:\nZahl 1 fuer *Der*\nZahl 2 fuer *Die*\nZahl 3 fuer *Das* ein:\n"<<endl; cin>>zahl; if(zahl==1) { cout<<("Du hast Zahl 1 fuer Der eingegeben.\n "); } if(zahl==2) { cout<<("Du hast Zahl 2 fuer Die eingegeben.\n "); } if(zahl==3) { cout<<("Du hast Zahl 3 fuer Das eingegeben.\n "); } return 0; } :-) Kein Problem. Bearbeitet 4. November 2009 von skejcik Zitieren
Micha82 Geschrieben 4. November 2009 Geschrieben 4. November 2009 mal so als fingerübung in c... da es ja schon nach 12 ist #include <stdio.h> #include <stdlib.h> #include <string.h> int main(int argc, char *argv[]) { char line[1024]; char *cutter; FILE *inDat; FILE *outDat; inDat = fopen("inData.dat","r"); if(inDat == NULL) { printf("--- Err: Can't open inData"); return 1; } outDat = fopen("outData.dat","w"); while(!feof(inDat)) { if(fgets(line, 1024, inDat) != 0) { if(line[0] == '\n') { fprintf(outDat,"\n"); } else { cutter = strtok(line, " "); while(cutter != 0) { if(cutter[strlen(cutter)-1] == '\n') cutter = strtok(cutter, "\n"); if(strcmp(cutter,"der") == 0 || strcmp(cutter,"Der") == 0) fprintf(outDat,"1 "); else if(strcmp(cutter,"die") == 0 || strcmp(cutter,"Die") == 0) fprintf(outDat,"2 "); else if(strcmp(cutter,"das") == 0 || strcmp(cutter,"Das") == 0) fprintf(outDat,"3 "); else fprintf(outDat,"%s ",cutter); cutter = strtok(0, " "); } fprintf(outDat,"\n"); } } } fclose(inDat); fclose(outDat); return 0; } Zitieren
TDM Geschrieben 4. November 2009 Geschrieben 4. November 2009 (bearbeitet) :-) Kein Problem. Was hat das mit der Aufgabenstellung zu tun? Und seit wann macht man hinter den ostream-Operator klammern?! mal so als fingerübung in c... Sollte aber C++ sein. (Würd mal meinen, noch eine Sprache verwirrt ihn/sie/es bloß...) Fertige Lösungen sind eh nicht das Wahre, da das erstens kein Hausaufgabenforum ist und er/sie/es "hingeklatschten" Code eh nicht versteht und dadurch nichts lernt. (btw: Code-TAGs das nächste Mal bitte nehmen.) Bearbeitet 4. November 2009 von TDM Zitieren
Micha82 Geschrieben 4. November 2009 Geschrieben 4. November 2009 Sollte aber C++ sein. (Würd mal meinen, noch eine Sprache verwirrt ihn/sie/es bloß...) Fertige Lösungen sind eh nicht das Wahre, da das erstens kein Hausaufgabenforum ist und er/sie/es "hingeklatschten" Code eh nicht versteht und dadurch nichts lernt.) Schon klar das es ihn verwirrt... aber damit er zumidnest sieht wies aussieht in c... und damit das für ihn auch nicht all zu einfach wird und ich ihm die aufgabe "hinklatschte" ist das ganze auch in c (btw: Code-TAGs das nächste Mal bitte nehmen.) ok Zitieren
skejcik Geschrieben 4. November 2009 Geschrieben 4. November 2009 Ahso , sry steht ja TxT* Datei , hab gedacht einfache Konsolenanwendung :-) Sorry.^ Zitieren
chooter696 Geschrieben 4. November 2009 Geschrieben 4. November 2009 @skejcik es ist ja auch ne konsolenanwendung bitte ließ bevr du antwortest die aufgabenstellung. Für dich nochmal extra zusammengefasst. In der datei steht der , die oder das. Er soll sein programm öffnen die werte auslesen und aus der 1, die 2 und das 3 machen. Dies dann in die datei reinschreiben und fertig. @ threadersteller #include <iostream> using namespace std; int main() { Hier kommt dein Code rein. } Hier wird die genaustens erklärt wie man Hallo welt schriebt und was was bedeutet Klick Zitieren
BlackSmith Geschrieben 5. November 2009 Autor Geschrieben 5. November 2009 Dankeleute für eure Hilfe, hat alles wunder bar geklappt. hab das so stehen. #include <stdio.h> #include <stdlib.h> #include <string.h> int main(int argc, char *argv[]) { char line[1024]; char *cutter; FILE *inDat; FILE *outDat; inDat = fopen("intausch.dat","r"); if(inDat == NULL) { printf("der die das der die das wieso weshalb warum wer nicht bei plus wasmacht bleibt dumm"); return 1; } outDat = fopen("outData.dat","w"); while(!feof(inDat)) { if(fgets(line, 1024, inDat) != 0) { cutter = strtok(line, " "); while(cutter != 0) cutter = strtok(line, " "); while(cutter != 0) { if(cutter[strlen(cutter)-1] == '\n') cutter = strtok(cutter, "\n"); if(strcmp(cutter,"der") == 0 || strcmp(cutter,"Der") == 0) fprintf(outDat,"1 "); else if(strcmp(cutter,"die") == 0 || strcmp(cutter,"Die") == 0) fprintf(outDat,"2 "); else if(strcmp(cutter,"das") == 0 || strcmp(cutter,"Das") == 0) fprintf(outDat,"3 "); else fprintf(outDat,"%s ",cutter); cutter = strtok(0, " "); } fprintf(outDat,"\n"); } } fclose(inDat); fclose(outDat); return 0; } nun soll ich das wieder umwandeln nicht das er 1 2 3 ausgiebt sondenr wieder in der die das umwandelt nur ich bekomme das nicht hin, kann mir jemand schreiben was genau ich da umschreiben muss versuche es schon seit 8 uhr morgens nur komme leider kein meter weiter MfG C. Zitieren
Micha82 Geschrieben 5. November 2009 Geschrieben 5. November 2009 ... Lies dir das programm durch... wenn du schon meins benutzt schau wo ich nach der die oder das suche...ändere das und suche nach 1 2 oder 3 und lass der die das rausschreiben... bissel solltest du auch machen... Zitieren
TDM Geschrieben 5. November 2009 Geschrieben 5. November 2009 hab das so stehen. Das ist aber C und kein C++. [Editerle] Micha, ich sagte doch, dass es ihn verwirrt. Zitieren
Micha82 Geschrieben 5. November 2009 Geschrieben 5. November 2009 Micha, ich sagte doch, dass es ihn verwirrt. ich geb dir recht !!! ich werd keinen code mehr hier rein setzen nur noch tipps Zitieren
chooter696 Geschrieben 5. November 2009 Geschrieben 5. November 2009 @ blacksmith ich glaube du hast nicht den sinn von dem ganzen verstanden. Es wird niemals irgenteiner dir deine Arbeit abnehem den Code der dir gepostet wurde ist in c geschreiben. C ist nicht c++ sondern es baut in einigen Sachen drauf auf und in vielen dingen ist es aber anders. Desweiteren glaube ich nicht das du überhaupt den sinn des Quellcodes oder bessergesagt die funktionen verstanden hast und wie sie funktionieren. Deshalb gibt euch der Lehrer aufgaben damit er überprüfen kann ob ihrs verstanden habt und net um euch zu nerven. Fange mit kleineren Projekten an. Wie gesagt guck dir c++ tuts an bei google gibts unterdem begriff mio von sachen. Kleine Auflistung was du am anfang zuerst machen können solltest. Auflistung: Standartaufbau eines C++ codes in einer Konsolenanwendung (siehe oben mein Beitrag) 2. Aus und Eingabe (Cout / Cin) 3. Escapesequenzen (optional) 4. Alle Datentypen und ihre Funktionen (char, string, bool, short, int, long, float, double) 5. Anweisungen (if) 6. Schleifen ( for , while, do while) 7. Dateiarbeit (fstream oder ifstream) Danach sollte man sich ein bisschen orientieren können. Zitieren
TDM Geschrieben 6. November 2009 Geschrieben 6. November 2009 Warum zählst du primitive Datentypen (char, int, bool) und Klassen (string) zusammen auf? Short und Long sind in meinen Augen keine Datentypen, sondern Größenangaben. (Du hast ja auch nicht signed und unsigned aufgezählt...) Wenn man sich das hier mal ansieht: stellt man sogar fest, dass cin/cout und Dateiarbeit nahe zusammen liegen. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.