Frage zu cin
-
Ich soll ein Programm vervollständinge. Darin kommt folgender code for:
nr_letters = 0; while (((cin >> letters[nr_letters]) != 0) && // cin ignores newlines. (nr_letters < (MAX_NR_BASES - 1))) { nr_letters++;Dazu ist ein file mit diesen Werten gegeben. Aber cin nimmt ja in diesem Fall Werte aus der Konsole entgegen. Wie kann ich das ändern? (am besten immernoch mit cin)
-
Einfach cin durch file (ifstream objekt) ersetzen.
-
Optimalerweise sagst du deinem System einfach, dass "cin" auf eine Datei zeigen soll. Unter Windows würde der Aufruf dann so aussehen:
programmxyz.exe < in.txt
-
cooky451 schrieb:
Optimalerweise sagst du deinem System einfach, dass "cin" auf eine Datei zeigen soll. Unter Windows würde der Aufruf dann so aussehen:
programmxyz.exe < in.txtWie würde das dann aussehen? Wenn ich obendran einfach file.dat < in.txt mache, funktioniert das nicht xD (visual c++ 2010 express sagt der Bezeichner sei nicht definiert).
-
Du kannst es auch so machen:
... ifstream file("your_file.txt"); cin.rdbuf(file.rdbuf()); cin >> variable; ...http://www.cplusplus.com/reference/iostream/istream/
http://www.cplusplus.com/reference/iostream/ios/rdbuf/Lombras schrieb:
cooky451 schrieb:
Optimalerweise sagst du deinem System einfach, dass "cin" auf eine Datei zeigen soll. Unter Windows würde der Aufruf dann so aussehen:
programmxyz.exe < in.txtWie würde das dann aussehen? Wenn ich obendran einfach file.dat < in.txt mache, funktioniert das nicht xD (visual c++ 2010 express sagt der Bezeichner sei nicht definiert).
Du hast nicht wirklich versucht das als Code in deine IDE zu schreiben?
-
ok viele dank^^ problem behoben xD