Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (GNU/Linux, *NIX, *BSD und Co) » Datei zeichenweise auslesen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
20.04.2021, 03:48 Uhr
Yadgar



Hi(gh)!

Ich würde gerne aus einer kleinen Textdatei, die das jeweils aktuell für ein noch zu entwickelndes Programm gültige Sprachkürzel (zur Zeit entweder DE oder EN) enthält, dieses Sprachkürzel auslesen und in einem string-Objekt speichern... aber das hier:


C++:
  Cfile_lang.open(Cfilename_lang.c_str()); // open as ASCII, not binary!
  
  Cfile_lang >> lang; // lang is declared as a string object
  
  cout << "Sprache: " << lang << endl;



funktioniert leider nicht... in diesem Fall bekomme ich das Konsolenfenster mit einer frustrierend langen Latte von Fehlermeldungen vollgeknattert.

Auch meine Versuche mit for- oder while-Schleifen und get() funktionierten alle nicht so, wie sie sollten...

Mein Problem ist einfach, dass ich mich nur alle paar Jahre mal mit C++ beschäftige und deshalb immer wieder nahezu bei Null anfangen muss... und dann entwickelt sich die Sprache auch noch rasant weiter!

Bis bald im Khyberspace!

Yadgar
--
Flagmaker - ein Programmier-Blog

Dieser Post wurde am 20.04.2021 um 03:49 Uhr von Yadgar editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
25.04.2021, 04:35 Uhr
Hans
Library Walker
(Operator)


Hm... also ich weis nicht, aber dass müsste doch auch mit einer Uraltversion von C++ noch fast genauso funtionieren, wie mit einer aktuellen. Also müsste ein Lehrbuch, dem der C++ Standard von 1998 zu Grunde liegt, eigentlich ausreichen, um das hinzukriegen, bzw. daraus abzuschreiben. Evtl. muss man dem Compiler mit einer Optionen beibringen, dass man einen alten Standard verwendet.

Ansonsten guck doch einfach mal hier: https://en.cppreference.com/w/cpp/io/basic_fstream/open

oder hier: www.cplusplus.com/doc/tutorial/files/
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
27.04.2021, 13:32 Uhr
ao

(Operator)


Also, das hier funktioniert bei mir (Ubuntu 18.04):

C++:
#include <iostream>
#include <fstream>

int main()
{
    std::string langFileName = "lang.txt";
    std::ifstream langFile(langFileName);    
    
    std::string lang;
    if (langFile)        //    true if file exists and has read permission
    {
        langFile >> lang;
        std::cout << "lang: " << lang << std::endl;
    }
    else
    {
        std::cout << "bad file" << std::endl;
    }    
    
    return 0;
}



Ob ich den ifstream mit dem Konstruktor öffne oder mit .open(), spielt dabei keine Rolle, funktioniert beides.

Was den Fehler bei dir angeht?
1. Wobei kriegst du Fehlermeldungen? Beim Kompilieren oder beim Laufenlassen? Und welche Fehler? Zitier mal die ersten paar.
2. Wie ist Cfile_lang definiert?
3. Sicher, dass das File existiert? Im richtigen Verzeichnis? Und dass es lesbar ist?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (GNU/Linux, *NIX, *BSD und Co) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: