problem mit leerzeichen
-
hi,
ich bins mal wieder.
alles klappt so wie ich wollte, dachte ich.ich hab mir eine klasse zum anlegen von pfaden/dateien und
zum schreiben in dateien gemacht.klappt alles gut bis ich leerzeichen nutzte,
er macht alles bis zum leerzeichen, dann schliesst das programm.muss ich die eingabe überwachen und für leerzeichen ne ausnahmebehandlung
machen?hoffe ich nerve euch nich langsam:)
danke
-
adonis schrieb:
ich bins mal wieder.
Hab' zwar kein Schimmer wer du bist, antworte trotzdem
Bekommt dein Programm einen Pfad übergeben, der Leerzeichen enthält?
Dann ist das Problem die Shell, nicht C++. Setze um den gesamten
Pfad Anführungszeichen (Doppelte oder einfache, je nach Shell/BS).Liest du die Pfade von der Konsole?
Dann poste mal wie. (fgets, ...)
-
jop ist eine kleine consolen anwedung, bin noch recht neu in der
praxis:)hier mal der code, habe bestimmt viel sinnlos zeugs drin,
ich lerne nochmeine klasse
#ifndef _DBCLASS_H #define _DBCLASS_H #include <cstring> class DbClass { private: std::string m_szPathname; std::string m_szFileName; std::string m_szFilePosition; std::string m_szDaten; public: DbCLass(); std::string CreatePath(std::string path); std::string getPathname(); std::string FileCreate(std::string filename); std::string getFilename(); std::string getFilePosition(); writeToFile(std::string Daten); }; #endif
meine methoden
#include <iostream> #include <sstream> #include <fstream> #include <cstring> #include <stdio.h> #include <windows.h> #include "dbclass.h" using namespace std; string DbClass::CreatePath(std::string path) { m_szPathname="C:\\"; m_szPathname+=path; CreateDirectory(m_szPathname.c_str(),NULL); return m_szPathname; } string DbClass::getPathname() { cout<<m_szPathname<<endl; return m_szPathname; } string DbClass::FileCreate(std::string filename) { fstream myFile; string slash="\\"; m_szFileName=filename; m_szFilePosition=m_szPathname+slash+m_szFileName; myFile.open(m_szFilePosition.c_str(), ios::out); myFile.close(); return m_szFileName; } string DbClass::getFilename() { return m_szFileName; } string DbClass::getFilePosition() { string slash="\\"; m_szFilePosition=m_szPathname+slash+m_szFileName; return m_szFilePosition; } DbClass::writeToFile(string Daten) { fstream myFile; myFile.open(m_szFilePosition.c_str(), ios::out); myFile<<Daten; myFile.close(); }
meine main
#include <iostream> #include <cstring> #include "dbclass.h" using namespace std; void main() { char x; std::string path; std::string filename; string Daten; DbClass test1; cin>>path; cin>>filename; cout<<"Daten eingeben"<<endl; cin>>Daten; test1.CreatePath(path); test1.FileCreate(filename); test1.writeToFile(Daten); cin>>x; return; }
-
benutze in deiner main statt cin mal getline http://www.cppreference.com/cppstring/getline.html
dann sollte er die Leerzeichen mit in den string nehmen
-
gut, danke ich werd das mal probieren
funktioniert sehr gut, danke , der link is auch sehr nett