Funktion um Pfad einzulesen
-
@ Ghost:könntest du mir mal den gesamten geänderten code posten,check des net so ganz...
@ Kühnheit(
):aus der konsole.
THx,
Xalon
-
Xalon schrieb:
@ Kühnheit(
):aus der konsole.
Ich würds mehr mit "Frechheit" übersetzen
Entschuldige die dumme Frage, aber ich dachte eigentlich, daß jeder Buchautor cin und cout als erstes bringt, jedoch auf jeden Fall vor den Datei-Streams...Moritz
-
oder Verwegenheit?^^
Wenn man mit cin einen Stream ausliest kann man den leider nicht als pfad nehmen^^
Thx,
Xalon
-
Xalon schrieb:
Wenn man mit cin einen Stream ausliest kann man den leider nicht als pfad nehmen^^
Kennst du cin.get () ?
Standard C++ Library: Class Reference schrieb:
basic_istream::get();
Extracts a character, if one is available. Otherwise, the function calls the basic_ios member function setstate(failbit), which may throw ios_base::failure. Returns the character extracted or returns traits::eof(), if none is available.
Moritz
-
Ganz sicher? Ich habs zwar nicht getestet müsste aber doch gehen. Oder? Du musst halt diese Eingabe eventuell noch bearbeiten, afaik je nach os. Wegen den Backslashs. D.h. du suchst nach nach jedem "\" und fügst dahinter noch einen "\" an. Sollte sich mit den std::string methoden doch relativ einfach machen lassen, oder?
Caipi
-
Caipi schrieb:
Wegen den Backslashs. D.h. du suchst nach nach jedem "\" und fügst dahinter noch einen "\" an. Sollte sich mit den std::string methoden doch relativ einfach machen lassen, oder?
Warum das denn?
-
Da der Backslash ja auch Escape-Sequencen einleitet. Um seine 'normale' Bedeutung zu erzielen muss man ihn deshalb maskieren.
Vergl.
#include <fstream> int main() { std::ifstream in("C:\irgendeinordner\nocheiner\datei.txt"); return 0; }
(Sollte sich nicht kompilieren lassen.
Caipi
-
Caipi schrieb:
Da der Backslash ja auch Escape-Sequencen einleitet. Um seine 'normale' Bedeutung zu erzielen muss man ihn deshalb maskieren.
Aber nur im Sourcecode; wenn du Zeichen von einem Stream einliest (oder woher auch immer), brauchst du keine Escape-Sequenzen.
-
@audacia:
Sieh an sieh an. Irgendwie hat sich bei mir wohl das Maskieren des Backslashes falsch eingeprägt. Wieder was gelernt und Danke für die Korrektur@Xalon:
Sorry für meine Falschinformation.Caipi
-
#include <algorithm> #include <string> #include <fstream> #include <iostream> std::cout<<"Eingabe :"; std::string eingabe; std::cin>>eingabe; //Alles auser Windows: std::fstream data(eingabe.str_c(),std::ios::out); //Windows std::replace(eingabe.begin(),eingabe.end(),"\\","\\\"); std::fstream data(eingabe.str_c(),std::ios::out);
Ich bin mal wieder zu net.
das mit "\","\\" bin ich nicht sicher...Ghost