Input/Output



  • hmmm, kannst du vllt step by step sagen was ich machen muss 😃

    ich hab wirklich den faden verloren 😕



  • Ich glaube, die wollen, dass du deine vierstellige Zahl aus input.txt rausholst und die Textausgabe nach output.txt schreibst.

    Hattest du doch in deinem Originalen Programm schon ganz richtig, nur dass du die ganzen Nachfrageausgaben auch ins Textfile geschrieben hast.

    Im input.txt steht deine vierstellige Zahl.
    Die holst du dir über einen istream, wertest sie in deinem Programm aus und schreibst den Text nach output.txt per ostream. Die Nachfrage, ob du noch eine Zahl lesen willst, kannst du ja drinlassen, wenn du mehrere Zahlen (durch Leerzeichen oder \n getrennt) in der input.txt stehen hast.



  • genau das ist es !!!

    nur es klappt iwie nicht, ich hab die vo Folie studiert und 1:1 übernommen, klappt nicht 😞



  • so folgendes:

    ich habe eine Input.txt erzeugt und 4 vierstellige zahlen eingetippt; diese datei in den Ordner gelegt wo meine main.cpp ist.

    main.cpp schaut so aus:

    #include <iostream>
    #include <fstream>
    #include <cstdlib> //für atoi
    using namespace std;
    int main ()
    {
    
        ifstream iFile;
        iFile.open("input.txt");
        string line= ""; //string ist wie character nur liest es nicht ein character sondern mehrere
        int zahl=0;
        int t;
        int h;
        int z;
        int e;
    
        if (iFile.is_open()) {
            while(!iFile.eof()) { //solange nicht end of file geht es durch
                getline(iFile, line, '\n'); //liest die Datei, speichert in line überschreibt es bei zeilenumbruch
                zahl = atoi(line.c_str()); //wird in integer umgewandelt und in der variable zahl eingespeichert
    
                t= zahl/1000;
                h= zahl/100%10;
                z= zahl/10%10;
                e= zahl%10;
    
                switch (t) {
    
                    case 1: cout<< "eins-";break;
                    case 2: cout<< "zwei-";break;
                    case 3: cout<< "drei-";break;
                    case 4: cout<< "vier-";break;
                    case 5: cout<< "fünf-";break;
                    case 6: cout<< "sechs-";break;
                    case 7: cout<< "sieben-";break;
                    case 8: cout<< "acht-";break;
                    case 9: cout<< "neun-";break;
                    case 0: cout<< "null-";break; }
    
                switch (h) {
    
                    case 1: cout<< "eins-";break;
                    case 2: cout<< "zwei-";break;
                    case 3: cout<< "drei-";break;
                    case 4: cout<< "vier-";break;
                    case 5: cout<< "fünf-";break;
                    case 6: cout<< "sechs-";break;
                    case 7: cout<< "sieben-";break;
                    case 8: cout<< "acht-";break;
                    case 9: cout<< "neun-";break;
                    case 0: cout<< "null-";break; }
    
                switch (z) {
    
                    case 1: cout<< "eins-";break;
                    case 2: cout<< "zwei-";break;
                    case 3: cout<< "drei-";break;
                    case 4: cout<< "vier-";break;
                    case 5: cout<< "fünf-";break;
                    case 6: cout<< "sechs-";break;
                    case 7: cout<< "sieben-";break;
                    case 8: cout<< "acht-";break;
                    case 9: cout<< "neun-";break;
                    case 0: cout<< "null-";break; }
    
                switch (e) {
    
                    case 1: cout<< "eins";break;
                    case 2: cout<< "zwei";break;
                    case 3: cout<< "drei";break;
                    case 4: cout<< "vier";break;
                    case 5: cout<< "fünf";break;
                    case 6: cout<< "sechs";break;
                    case 7: cout<< "sieben";break;
                    case 8: cout<< "acht";break;
                    case 9: cout<< "neun";break;
                    case 0: cout<< "null";break; }
            }
    
        }
        else {
            cout<<"Konnte input.txt nicht öffnen \n";
        }
        iFile.close();
    
        return 0;
    
    }
    

    nach dem kompilieren mit MAC kommt: konnte input nicht öffnen ???????

    ich mach doch alles richtig, oder ist der mac bisschen gemein hier ?


  • Mod

    diese datei in den Ordner gelegt wo meine main.cpp ist.

    Schön, dass du den Thread so aufmerksam liest. 🙄

    Ich habe dir doch schon erklärt, dass dein Programm die Datei wohl gerade deswegen nicht findet, warum das so ist und was du dagegen tun kannst.



  • tut mir leid ich meinte ich habe es NICHT in den selben Ordner getan 😃 ... trotzdem, wenn ich bei xcode auf run drücke geschieht nichts 😞



  • @neymar
    Ist dir das Konzept des "aktuellen Verzeichnis" aka. "Arbeitsverzeichnis" bekannt?



  • ich weiß nicht genau, was du meinst ! aber erklär bitte !



  • Na, sicher nicht.
    Das kannst du dir ergoogeln.
    "current directory" wenn du des Englischen mächtig bist.



  • [quote="hustbaer"]Na, sicher nicht.
    Das kannst du dir ergoogeln.
    "current directory" wenn du des Englischen mächtig bist.[/quote]

    ist fast so hilfreich wie das erklären ^^, ich les das mal durch und dann schau ma weiter, danke



  • neymar schrieb:

    ist fast so hilfreich wie das erklären ^^

    ISt sogar noch viel hilfreicher - zeigt dir nämlich, wo du Antworten auf viele deiner Fragen selbständig finden kannst (nämlich bei Google). Dann brauchst du nicht bei jeder kleinen Frage warten bis du hier ne Antwort bekommst (und wir brauchen nicht loszutippen bei Fragen, die in kürzester Zeit im Netz zu finden sind).



  • meine eigentliche frage war es wie es auf dem mac geht !!!
    mein programm funktioniert auf ubuntu mit g++ prima nur mit xcode nicht darum war die frage an mac user gerichtet !!

    ich habe es mitlerweile geschafft. man muss im xcode ein neues file öffnen und dann empty file öffnen, es als reinen txt abspeichern und full path angeben: sprich nicht iFIle("Input.txt") sondern iFile(home/blablabla/)

    er kann jetzt vom input auslesen aber das erstellen eines outputs geht nicht 😞

    google spuckt auch nicht viel aus, alle tuts und videos auf youtube habe ich angeschaut und am programm kanns nicht liegen das funktioniert ja bei ubuntu

    hmmm 😕



  • "funktioniert nicht", ist eine herrlich elaborierte Fehlerbeschreibung, die allen hilft, dein Problem zu lösen.

    Nicht.



  • funktioniert nicht: beim Xcode im Mac erstellt er keine output.txt Datei für den Input.txt mit dem inhalt (zB 1234, oder 3234 etc)

    Ich habe bis heute keine Lösung, nicht mal MAc User auf der Uni können mir helfen, die verwenden alle ubuntu zum programmieren, auf ubuntu kann ich es aber warum nicht mit dem Mac ... 😡

    klumpat 😕


  • Mod

    Bau Prüfungen im Code ein oder benutz einen Debugger um herauszufinden, was schief läuft. So wie der Thread verlaufen ist, bist du vermutlich immer noch im falschen Verzeichnis, vielleicht hast du aber auch keine Schreibrechte, wer weiß?


Anmelden zum Antworten