Benutzername:  
Passwort:     



Antwort schreiben  Thema schreiben 
[C++] Komplette Zeile einlesen
nacramell
Junior Member
*



Beiträge: 37
Registriert seit: Mar 2008
Gender: Male
Location: Gernsbach
Bewertung: 0

Beitrag: #1
[C++] Komplette Zeile einlesen - Posted At: 27.03.2008 11:17 PM

ein weiteres problem diesmal nicht beim programmieren sondern danach

Code:
#include <fstream>
#include <cstdlib>
#include <iostream>
#include <dirent.h>
#include <process.h>
#include <windows.h>
#include <shellapi.h>
#include <string>

using namespace std;

int main(int argc, char *argv[])
{
    
    string Dname; //hier startet die Abfrage
                  //des Dateinamens und Art der datei
    
    cout << "Bitte Datei Namen mit Endung txt, dat, oder anderen";
    cout << "\neingeben\n";
    cout << "Datei Name : ";
    cin >> Dname;
    cout << "Name der Datei + Endung:" << Dname << endl;
                  //ENDE
                              
              
    string Dinhalt; //hier startet die Abfrage
                    //des Inhalts der zu erstellenden Datei
    
    cout << "Bitte Inhalt der zu erstellenden Datei angeben\n";
    cout << "Inhalt :";
    cin >> Dinhalt;
    cout << "Inhalt der Datei :\n" << Dinhalt << endl;
                    //ENDE
                    
                    
                    //Das hier sollte nun eig die Datei
                    //mit Datei Namen und Art: Dname
                    //mit Inhalt: Dinhalt
                    //einfügen tuts aber net
                
    fstream f;
    f.open( Dname.c_str() , ios::out); //das hier gibt ein Fehler !!
                             //ich bin noch noob
                            //also bitte nicht auslachen^^
    f << Dinhalt << endl;
    f.close();
}


der funktioniert super nur schreibt er später in z.b. eine text datei nur das erste wort rein (das ich ihm durch den befehl cin gegeben habe)
und ich würd aber gern einen text reinschreiben

noch was macht des eig was das ich fast immer alle includes da lass (damit ich da keinen fehler bekomm ^^)?

Dieser Beitrag wurde zuletzt bearbeitet: 27.03.2008 11:24 PM von nacramell.

Offline   Diesen Beitrag einem Moderator melden  
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
N43
Administrator
*******



Beiträge: 237
Registriert seit: Jan 2004
Gender: Male
Location: Stuttgart
Bewertung: 0

Beitrag: #2
RE: [C++] Komplette Zeile einlesen - Posted At: 27.03.2008 11:28 PM

Abend,

cin ließt über den >> Operator nur bis zum ersten Space (Leerzeichen, Tab, Return). Eine ganze Zeile bekommt man mit getline.

Code:
#include <iostream>

using namespace std;

int main() {
        string s;
        getline(cin, s);
        cout << s;
}


Zitat:
noch was macht des eig was das ich fast immer alle includes da lass (damit ich da keinen fehler bekomm ^^)?

Der Compiler braucht dann länger zum kompilieren, aber ansonsten macht das nichts.


N43


www.programmers-corner.de

Debuggers don't remove Bugs, they only show them in Slow-Motion.
Offline   Diesen Beitrag einem Moderator melden  
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
nacramell
Junior Member
*



Beiträge: 37
Registriert seit: Mar 2008
Gender: Male
Location: Gernsbach
Bewertung: 0

Beitrag: #3
RE: [C++] Komplette Zeile einlesen - Posted At: 27.03.2008 11:30 PM

hm des

Code:
getline(cin, s);
cout << s;

muss nach

Code:
string Dinhalt; //hier startet die Abfrage
                    //des Inhalts der zu erstellenden Datei
    
    cout << "Bitte Inhalt der zu erstellenden Datei angeben\n";
    cout << "Inhalt :";

in meiner Funktion ?

Offline   Diesen Beitrag einem Moderator melden  
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
nacramell
Junior Member
*



Beiträge: 37
Registriert seit: Mar 2008
Gender: Male
Location: Gernsbach
Bewertung: 0

Beitrag: #4
RE: [C++] Komplette Zeile einlesen - Posted At: 27.03.2008 11:36 PM

Jetzt verschluckt er das erste wort nach

Code:
cout << "Inhalt :";

d.h. kommt in der fertigen Datei z.b. "test.txt" nicht an dort steht dann

Code:
wie gehts der wetl

ob wohl ich gesagt habe er soll

Code:
Hallo wie gehts der wetl

eintragen

Dieser Beitrag wurde zuletzt bearbeitet: 27.03.2008 11:37 PM von nacramell.

Offline   Diesen Beitrag einem Moderator melden  
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
N43
Administrator
*******



Beiträge: 237
Registriert seit: Jan 2004
Gender: Male
Location: Stuttgart
Bewertung: 0

Beitrag: #5
RE: [C++] Komplette Zeile einlesen - Posted At: 27.03.2008 11:37 PM

Abend,

jap, das geline(cin, s) ließt die ganze Zeile ein. cout war nur zum Testen da Smilie

Bei dir also

Code:
cout << "Bitte Inhalt der zu erstellenden Datei angeben\n";
cout << "Inhalt :";
getline(cin, Dinhalt);
cout << "Inhalt der Datei :\n" << Dinhalt << endl;



N43


www.programmers-corner.de

Debuggers don't remove Bugs, they only show them in Slow-Motion.
Offline   Diesen Beitrag einem Moderator melden  
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
nacramell
Junior Member
*



Beiträge: 37
Registriert seit: Mar 2008
Gender: Male
Location: Gernsbach
Bewertung: 0

Beitrag: #6
RE: [C++] Komplette Zeile einlesen - Posted At: 27.03.2008 11:42 PM

hm
jetzt schliest er das programm nachdem ich den Datei namen eingegeben habe sofort wieder !!

Code:
#include <fstream>
#include <cstdlib>
#include <iostream>
#include <dirent.h>
#include <process.h>
#include <windows.h>
#include <shellapi.h>
#include <string>

using namespace std;

int main(int argc, char *argv[])
{
    
    string Dname; //hier startet die Abfrage
                  //des Dateinamens und Art der datei
    
    cout << "Bitte Datei Namen mit Endung txt, dat, oder anderen";
    cout << "\neingeben\n";
    cout << "Datei Name : ";
    cin >> Dname;
    cout << "Name der Datei + Endung:" << Dname << endl;
                  //ENDE
                              
              
    string Dinhalt; //hier startet die Abfrage
                    //des Inhalts der zu erstellenden Datei
    
    cout << "Bitte Inhalt der zu erstellenden Datei angeben\n";
    cout << "Inhalt :";
    getline(cin, Dinhalt);
    cout << "Inhalt der Datei :\n" << Dinhalt << endl;
                    //ENDE
                    
                    
                    //Das hier sollte nun eig die Datei
                    //mit Datei Namen und Art: Dname
                    //mit Inhalt: Dinhalt
                    //einfügen tuts aber net
                
    fstream f;
    f.open( Dname.c_str() , ios::out); //kein Fehler mehr !!
    f << Dinhalt << endl;
    f.close();
}

Dieser Beitrag wurde zuletzt bearbeitet: 27.03.2008 11:43 PM von nacramell.

Offline   Diesen Beitrag einem Moderator melden  
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
nacramell
Junior Member
*



Beiträge: 37
Registriert seit: Mar 2008
Gender: Male
Location: Gernsbach
Bewertung: 0

Beitrag: #7
RE: [C++] Komplette Zeile einlesen - Posted At: 27.03.2008 11:46 PM

das heist wol das er nichts mehr zu tuhn hat er fragt mich nach dem dateien namen angeben nichts mehr (ich hab mal sleep(200) rein gemacht der schreibt alles also)

Code:
string Dinhalt; //hier startet die Abfrage
                    //des Inhalts der zu erstellenden Datei
    
    cout << "Bitte Inhalt der zu erstellenden Datei angeben\n";
    cout << "Inhalt :";
    getline(cin, Dinhalt);
    cout << "Inhalt der Datei :\n" << Dinhalt << endl;
                    //ENDE

die couts schreibt er !!

Offline   Diesen Beitrag einem Moderator melden  
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
N43
Administrator
*******



Beiträge: 237
Registriert seit: Jan 2004
Gender: Male
Location: Stuttgart
Bewertung: 0

Beitrag: #8
RE: [C++] Komplette Zeile einlesen - Posted At: 27.03.2008 11:55 PM

Was soll er denn danach noch machen?

Er schreibt den Text in die Datei und beendet sich dann.

N43


www.programmers-corner.de

Debuggers don't remove Bugs, they only show them in Slow-Motion.
Offline   Diesen Beitrag einem Moderator melden  
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
nacramell
Junior Member
*



Beiträge: 37
Registriert seit: Mar 2008
Gender: Male
Location: Gernsbach
Bewertung: 0

Beitrag: #9
RE: [C++] Komplette Zeile einlesen - Posted At: 28.03.2008 12:00 AM

nochmal ? nach der ersten abfrage de namens bezüglich

sollte er eig nach dem inhalt fragen TUHT ER ABER NICHT ^^
ehm er gibt nur die ausgaben der couts mehr net

Offline   Diesen Beitrag einem Moderator melden  
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
N43
Administrator
*******



Beiträge: 237
Registriert seit: Jan 2004
Gender: Male
Location: Stuttgart
Bewertung: 0

Beitrag: #10
RE: [C++] Komplette Zeile einlesen - Posted At: 28.03.2008 12:03 AM

Hab das Programm mal probiert. Das letzte newline Zeichen lag noch im Eingabepuffer, weshalb er keine ganze Zeile gelesen hatte.

Setzt vor das getline ein cin.ignore(), dann geht's.

Code:
cout << "Bitte Inhalt der zu erstellenden Datei angeben\n";
    cout << "Inhalt :";
    cin.ignore();
    getline(cin, Dinhalt);
    cout << "Inhalt der Datei :\n" << Dinhalt << endl;


www.programmers-corner.de

Debuggers don't remove Bugs, they only show them in Slow-Motion.
Offline   Diesen Beitrag einem Moderator melden  
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
nacramell
Junior Member
*



Beiträge: 37
Registriert seit: Mar 2008
Gender: Male
Location: Gernsbach
Bewertung: 0

Beitrag: #11
RE: [C++] Komplette Zeile einlesen - Posted At: 28.03.2008 12:05 AM

JUHU danke N43 jetzt funktionierts

DANKE

Offline   Diesen Beitrag einem Moderator melden  
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Antwort schreiben  Thema schreiben 

[-]
Schnellantwort
Nachricht
Gib hier deine Antwort zum Beitrag ein.





Druckversion anzeigen
Thema einem Freund senden
Thema abonnieren | Thema zu den Favoriten hinzufügen

Gehe zu Forum: