Hallo,
ich möchte aus einer Datei lesen aber irgendwie will getline mir nichts ausgeben
111.txt existiert und hat Inhalt. Ich bin mir nicht sicher ob es am Unicode liegt aber selbst wenn sollte es ja irgendwas ausgeben, da die Buchstaben (ohne Umlaute) ja die selben Werte haben, oder? Ich verzweifel beinahe. Sitze schon den ganzen Anbend/Nacht. Sehen dass das nicht funktionier tu ich im Debugmodus. Die werte ändern sich nicht. habe auch schon messageboxes ausgeben wollen. geht nicht.Code:// Open the file fstream f; f.open("111.txt", ios::in); if (!f.is_open()) return Error(); while (!f.eof()) { f.getline(charstrLine, 80); } f.close();
Infos:
c++
VS 2010
Win32 Anwendung
non MFC
keine vorkompilierte Header
nichts was ich nicht kenne ATL/STL und so ... ka was das bedeutet... alles aus.
+ Antworten
Ergebnis 1 bis 7 von 7
Aus Datei lesen , Unicode
Diskussion über Aus Datei lesen , Unicode in C und C++ der Kategorie Programmierung; Hallo, ich möchte aus einer Datei lesen aber irgendwie will getline mir nichts ausgeben Code: // Open the file fstream ...
- 26.01.2012 02:03 #1Reg.-Benutzer
- Reg.-Datum
- 25.09.2009
- Ort
- Kaiserstuhl
- Beiträge
- 32
Aus Datei lesen , Unicode
- 26.01.2012 06:20 #2
Administrator + Moderator
C++: Compiler, IDEs, APIs / C und C++, Algorithmik, Basic, Sonstige, .NET
- Reg.-Datum
- 10.07.2001
- Ort
- Essen
- Beiträge
- 8.980
Im gezeigten Code ist nichts, das irgendeine Ausgabe erzeugen könnte.
Zum Code:- Wenn du statt fstream ifstream benutzt, kannst du dir das ios::in sparen.
- open und close benutzt man normalerweise nicht. Für open gibt es den Konstruktor, für close den Destruktor.
- eof eignet sich nicht als Schleifenbedingung, weil das erst dann true ergibt, wenn das Lesen schon einmal fehlgeschlagen ist.
- Benutz besser std::getline aus <string>, dann bekommst du keine Probleme, wenn mal eine Zeile mehr als 80 Zeichen hat.
Code:// Open the file ifstream f("111.txt"; while (f.getline(charstrLine, 80)) { }"Funktioniert nicht" ist keine ausreichende Problembeschreibung.
- 26.01.2012 10:07 #3
Hi De Kaisastiähla,
der folgende Ansi C Code ließt aus der Datei "C:\Text.txt" die erste Zeile aus.
Ausgegeben werden die ersten 3 Zeichen und eine Zeile tiefer im Ausgabefenster die nächsten 3 Zeichen.
Ich hätte mal die Frage, wie ich denn an die letzen 3 Zeichen in der Textdatei herankommen kann, wenn diese nicht in der ersten Zeile der Textdatei stehen, sondern in der zweiten Zeile der Textdatei ?Code:{ char data_1[255]; char aa[255]; char bb[255]; FILE *ptr; ptr = fopen("C:\\Text.txt", "r"); //Textdatei öffnen fgets(data_1, 255, ptr); //Die Zeile wird aus der Textdatei eingelesen strcpy(aa, data_1); strcpy(bb, data_1); { char* substr = &aa[0]; aa[3] = '\0'; printf( "Wert 1 aus Zeile 1: '%s'\n", substr , "%s\n"); } { char* substr = &bb[3]; bb[6] = '\0'; printf( "Wert 2 aus Zeile 1: '%s'\n", substr , "%s\n"); } if( ptr != NULL ) // Wenn nichts in der Textatei steht, springe nach unten und schliesse die Datei { } fclose( ptr ); //Textdatei schliessen }
Was müsste ich im Code dafür ändern ?
Kann mir das jemand erklären.
Gruß
EleuWas wahr ist, ist weder gut noch böse, sondern einfach wahr !
Rabindranath Tagore, bengalischer "Alleskünstler" (1861 - 1941), Nobelpreis für Literatur 1913
- 26.01.2012 10:16 #4
- 26.01.2012 10:29 #5
Entschuldigung.
Was wahr ist, ist weder gut noch böse, sondern einfach wahr !
Rabindranath Tagore, bengalischer "Alleskünstler" (1861 - 1941), Nobelpreis für Literatur 1913
- 26.01.2012 14:05 #6Reg.-Benutzer
- Reg.-Datum
- 25.09.2009
- Ort
- Kaiserstuhl
- Beiträge
- 32
Jop, testen kann ich immer nur im mit dem Debugger von VS2010, indem ich die Variablen verfolge. Das haben die echt gut gemacht. In Win32 Anwendungen ist es leider nicht so einfach etwas auszugeben à la prinntf(...) oder weitere. Überzeugt mich vom Gegenteil, würde mich sehr freuen.
Danke, gemacht.Zum Code:
Wenn du statt fstream ifstream benutzt, kannst du dir das ios::in sparen.
Nochmals danke, feine Sache wenn das für mich erledigt wird. Ich muss dazu sagen, dass wir das in der Uni gelernt haben. Prof obv failed teaching C++.open und close benutzt man normalerweise nicht. Für open gibt es den Konstruktor, für close den Destruktor.
Hier steht halt das getline den istream zurückgibt. Deinem Code entnehme ich dann, dass ein leerer istream NULL/0/false ist. Ist das immer so?eof eignet sich nicht als Schleifenbedingung, weil das erst dann true ergibt, wenn das Lesen schon einmal fehlgeschlagen ist.
Naja würde ich gern aber ich brauche hinterher nen CSting wegen seinen angenemen Operationen und Möglichkeit ihn zu kovertieren. Ich habe schon ne weile nach casts von Std::string zu jeglichen (unnötig vielen) Stringarten gesucht, aber das scheint mir nicht so einfach wie der CString. Hier habe ich eine Lösung gefunden. Nur nicht für den Std::string.Benutz besser std::getline aus <string>, dann bekommst du keine Probleme, wenn mal eine Zeile mehr als 80 Zeichen hat.
Danke für die kompetente Hilfe.
- 26.01.2012 14:27 #7
Administrator + Moderator
C++: Compiler, IDEs, APIs / C und C++, Algorithmik, Basic, Sonstige, .NET
- Reg.-Datum
- 10.07.2001
- Ort
- Essen
- Beiträge
- 8.980
Mit OutputDebugString kannst du einen Text im Debug-Fenster ausgeben lassen (oder mit DebugView mitlesen).
Das Konzept nennt sich RAII
Kommt vermutlich von C.
So ähnlich. Wenn du ein stream-Objekt in einem Kontext benutzt, wo ein Wahrheitswehrt gefragt ist, entspricht der Wert dem negierten Rückgabewert von fail().
Immer, wenn das badbit oder das failbit des Streams gesetzt ist: Wenn die Datei nicht geöffnet werden konnte, wenn du am Dateiende angelangt bist, wenn du mit >> in den falschen Typ einliest.
std::string ist ein typedef von std::basic_string, der ist auf dieser Seite auch gelistet."Funktioniert nicht" ist keine ausreichende Problembeschreibung.
Aktive Benutzer
Aktive Benutzer
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
Ähnliche Themen
-
Excel Unicode Datei mit Chinesischen Schriftzeichen Einlesen\Exportieren
Von Nokinger im Forum BasicAntworten: 1Letzter Beitrag: 06.10.2005, 16:09 -
[VB 6] Datei erstellen in Unicode UTF 8
Von Catweezle im Forum BasicAntworten: 3Letzter Beitrag: 18.08.2005, 10:00 -
INI Datei lesen
Von robotto7831a im Forum C++: Compiler, IDEs, APIsAntworten: 6Letzter Beitrag: 14.08.2003, 08:08 -
Txt-Datei aus Batch-Datei lesen
Von LittlePicasso im Forum Delphi/RPG+CL/SonstigeAntworten: 8Letzter Beitrag: 14.02.2003, 15:15 -
aus Datei lesen
Von snopsy im Forum Skript- und WebserverprogrammierungAntworten: 2Letzter Beitrag: 12.04.2002, 11:55
Die häufigsten Suchbegriffe für diese Seite:
Bisher noch keine Treffer von einer Suchmaschine

LinkBack URL
About LinkBacks
Zitieren