Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > C/C++
You last visited: Today at 17:44

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Frage Ein- und Ausgabe mit Datein

Discussion on Frage Ein- und Ausgabe mit Datein within the C/C++ forum part of the Coders Den category.

Reply
 
Old   #1
 
KingwondA's Avatar
 
elite*gold: 312
Join Date: May 2013
Posts: 449
Received Thanks: 45
Frage Ein- und Ausgabe mit Datein

Das Beispielprogramm "Lesen einer Textdatei".
Egal was ich mache, es kommt immer die Fehlermeldung.
Code:
#include <string>
#include <fstream>
#include <iostream>
using namespace std;

int main() {
	string quelldateiname;
	cout << "Quelldatei? ";
	cin >> quelldateiname;
	ifstream quelle(quelldateiname); // Objekt für Eingabestrom
	if (!quelle) {                   // Fehlerabfrage
		cerr << quelldateiname << " kann nicht geöffnet werden!\n";
	}
	else {
		// Lesen der Datei und Anzeige der Zeilen
		while (quelle) {
			string zeile;
			getline(quelle, zeile);
			cout << zeile << endl;
		}
	}
} // Datei wird am Programmende automatisch geschlossen.
KingwondA is offline  
Old 10/05/2014, 20:26   #2

 
snow's Avatar
 
elite*gold: 724
Join Date: Mar 2011
Posts: 10,480
Received Thanks: 3,319
Schon mal geschaut, wie der quelldateiname-String aussieht?

Dieser Code funktioniert problemlos:
Code:
#include <string>
#include <fstream>
#include <iostream>

int main()
{
    std::string quelldatei;
    std::cout << "Quelldatei?" << std::endl;
    std::getline(std::cin, quelldatei);
    
    std::ifstream quelle{ quelldatei };
    
    if (!quelle) 
    {
        std::cerr << quelldatei << " kann nicht geöffnet werden!\n";
    } else
    {
        for (std::string line; std::getline(quelle, line); )
        {
            std::cout << line << std::endl;
        }
    }
}
snow is offline  
Old 10/06/2014, 00:19   #3
 
KingwondA's Avatar
 
elite*gold: 312
Join Date: May 2013
Posts: 449
Received Thanks: 45
Den quelldateiname-String soll man ja eingeben.
Aus diesen Grund ist ja auch die Eingabe mit "cin >>" vorhanden.
KingwondA is offline  
Old 10/06/2014, 00:58   #4

 
elite*gold: 0
Join Date: Feb 2008
Posts: 2,754
Received Thanks: 1,748
Er meinte viel mehr wie der String selbst aussieht. Du musst bei den Pfaden beispielsweise escaping beachten; somit wird aus \ dann \\ und so weiter.
Computerfreek is offline  
Old 10/06/2014, 07:26   #5
 
Schlüsselbein's Avatar
 
elite*gold: 0
Join Date: Feb 2013
Posts: 1,137
Received Thanks: 869
Benutze std::getline aus <string> statt den operator>> von std::cin.
Warum, erklär ich dir heute Nachmittag in nem Edit oder jemand anders der schneller ist.
Schlüsselbein is offline  
Old 10/06/2014, 16:14   #6

 
Delinquenz's Avatar
 
elite*gold: 0
Join Date: Jan 2009
Posts: 1,160
Received Thanks: 232
Quote:
Warum, erklär ich dir heute Nachmittag in nem Edit oder jemand anders der schneller ist.
Weil der std::iostream:: operator>>() bei einem Whitespace stoppt, während std::getline() bis zum Abgrenzungsbuchstaben einliest. Dieser ist, sofern nicht spezifiziert, ein '\n'. Heißt im Klartext: Alles bis zum Enter wird eingelesen, während bei std::cin >> das Einlesen nach einem Leerzeichen bereits beendet wird.
Delinquenz is offline  
Thanks
1 User
Old 10/06/2014, 17:00   #7
 
KingwondA's Avatar
 
elite*gold: 312
Join Date: May 2013
Posts: 449
Received Thanks: 45
Quote:
Originally Posted by Delinquenz View Post
Weil der std::iostream:: operator>>() bei einem Whitespace stoppt, während std::getline() bis zum Abgrenzungsbuchstaben einliest. Dieser ist, sofern nicht spezifiziert, ein '\n'. Heißt im Klartext: Alles bis zum Enter wird eingelesen, während bei std::cin >> das Einlesen nach einem Leerzeichen bereits beendet wird.
Wenn ich nun aber kein Leerzeichen eintippe, dann müsste das Programm doch klappen. Was es aber nicht will
KingwondA is offline  
Old 10/06/2014, 21:37   #8
 
Padmak's Avatar
 
elite*gold: 58
Join Date: Jun 2008
Posts: 2,311
Received Thanks: 8,420
Keine Ahnung was du machst, bei mir funktioniert dein originaler Code problemlos.

Code:
F:\dev\mingw32\bin>g++ -std=c++11 main.cpp -o aaa_main.exe

F:\dev\mingw32\bin>aaa_main
Quelldatei? test.txt
as÷dgiasnegls
Was gibst du denn ein als Dateiname?

Padmak
Padmak is offline  
Thanks
1 User
Old 10/07/2014, 00:17   #9
 
KingwondA's Avatar
 
elite*gold: 312
Join Date: May 2013
Posts: 449
Received Thanks: 45
Klappt alles, danke Padmak.
Das Programm, und die zu öffnende Datei müssen im selben Ordner sein.
KingwondA is offline  
Reply


Similar Threads Similar Threads
Frage datein
10/29/2012 - Metin2 Private Server - 0 Replies
Hallo wollte mal fragen welche Datein ich bräuchte um die Autopots funktionsfähig zu machen aus der root?
Frage du den epk/eix Datein
01/08/2012 - Metin2 Private Server - 0 Replies
Hey Leute, ich arbeite gerade wieder an einem Riesen Programm unzwar einem Client Manager, nun meine Frage, unzwar hat sich ja in der letzten Zeit so einiges bei den epk/eix Datein verändert, so würde ich einmal gerade wissen was alles und vor allem jede Menge Codes, HowTos, Releases etc haben. Hab da so leider nichts gefunden, es gibt hier aber doch sicher Leute die sich damit auskennen. Danke im Vorraus MrAPC
Frage zu gr2 datein
01/05/2011 - Metin2 Private Server - 0 Replies
wollte wissen ob man gr2 datein ein neuen datei weg zuweißen kann, wen ja wie macht man das. habe über SuFu nichts gefunden, weil er gr2 ignoriert Bitte antwortet mir
Frage Duell Ausgabe bei quest...
08/08/2010 - Metin2 Private Server - 4 Replies
Hallo ich wollt mal fragen wie mann ausgibt wenn ein spieler im duel ist also die quest überprüft dann ob der spieler sich in einem duell modus befindet sozusagen ist dass möglich wie heißt der quest befehel dafür... ich würde mich freuen wenn ich eine antwort bekommen würde =)
[FRAGE]AutoIt Gui ausgabe
12/27/2009 - AutoIt - 0 Replies
Hi, Ich hab mir mal was Programmiert, mein erster verushc. GUi hab ich geaschafft, ich will, dass man festlegen kann, was gesendet wird. Aber wenn ich nun aufm Numpad2 drücke sendet er immer 1, obwohl ich in mein FEld vorher in der Gui 5 eingetragen habe, an was liegt das? Dankeschön :D



All times are GMT +2. The time now is 17:44.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.