String auf Konsole ausgeben

Diskutiere String auf Konsole ausgeben im C/C++ Forum im Bereich Programmieren unter Linux/Unix; Hallo zusammen, ich bin auf ein Problem gestoßen dass für mich sehr unverständlich ist, aber vllt übersehe ich auch etwas Offensichtliches. Es...

  1. #1 linuxneuling84, 14.12.2015
    linuxneuling84

    linuxneuling84 Grünschnabel

    Dabei seit:
    26.03.2007
    Beiträge:
    1
    Zustimmungen:
    0
    Hallo zusammen,

    ich bin auf ein Problem gestoßen dass für mich sehr unverständlich ist, aber vllt übersehe ich auch etwas Offensichtliches.

    Es geht darum eine Text-Datei einzulesen und diese auf der Konsole aus zu geben, eigentlich ganz einfach. Folgenden Code habe ich getestet:

    Code:
    #include <cstdlib>
    #include <fstream>
    #include <iostream>
    #include <string>
    #include <sstream>
    
    
    using namespace std;
    
    
    int main(int argc, char** argv) {
      
      fstream is;
      is.open("filestring.txt"); // open a file stream
      string line;
    
      is >> line;
      cout << "This is a test string" << endl;
      cout << line << endl;
    
      return 0;
    }
    Ich bearbeite dies in NetBeans und dort funktioniert alles, d.h. die Ausgabe ist der test String und ein Wort aus der filestring Datei.
    Wenn ich dies jetzt aus dem Linux Terminal starte bekomme ich zwar den test String aber danach folgt eine Blankline, also nur "endl" wird richtig behandelt.

    Mit anderen Worten es muss einen Unterschied geben zwischen einem im Code erzeugten String und einem String der aus einer Datei eingelesen wurde.
    Ich würde mich freuen wenn mir jemand hiermit weiterhelfen könnte.

    Gruß Linuxneuling
     
  2. Pik-9

    Pik-9 Tripel-As

    Dabei seit:
    04.12.2008
    Beiträge:
    189
    Zustimmungen:
    2
    Hallo linuxneuling84,

    das Thema ist zwar schon ein Wenig älter, aber ich habe mir deinen Code trotzdem mal angesehen und mir sind einige Dinge aufgefallen:
    1. Du hast vergessen, die Datei wieder zu schließen. Das sollte man immer tun: is.close ()
    2. Der Operator >> nach fstream speichert leider nicht die erste Zeile, sondern nur das erste Wort bis zum Leerzeichen in line.
    3. Vielleicht hilft es, wenn du in der is.open Funktion auch gleich den Modus ios::in angibst.
    Insgesamt sieht das dann so aus:
    Code:
    #include <fstream>
    #include <iostream>
    #include <string>
    
    
    using namespace std;
    
    
    int main(int argc, char** argv) {
     
      fstream is;
      is.open("filestring.txt", ios::in); // open a file stream
      string line;
    
      getline (is, line);
      cout << "This is a test string" << endl;
      cout << line << endl;
     
      is.close ();
    
      return 0;
    }
    Versuch mal, ob das funktioniert.

    Grüße,
    Pik-9
     
Thema: String auf Konsole ausgeben
Besucher kamen mit folgenden Suchen
  1. qstring auf console ausgeben

Die Seite wird geladen...

String auf Konsole ausgeben - Ähnliche Themen

  1. Dateien in Unix finden, die mehrere Strings beinhalten

    Dateien in Unix finden, die mehrere Strings beinhalten: Hallo liebe Leute, ich versuche über die Shell unter Unix alle Dateien ausfindig zu machen, die sowohl den SuchstringA als auch den SuchstringB...
  2. FIND mit UND-Verknüpfung im Suchstring

    FIND mit UND-Verknüpfung im Suchstring: Hallo, ich schaffe es einfach nicht bei folgendem Kommando die Suchoptionen zu erweitern, damit nur Dateien beginnend mit "T_*" aufgelistet...
  3. String einer bestimmten Zeile durchsuchen

    String einer bestimmten Zeile durchsuchen: Hallo, wie kann ich den eine bestimmte Zeile einer Textdatei zerlegen und daraus ein Stück entnehmen? Ich suche nach der Zeile in der "model...
  4. alles außer letzte 4 strings

    alles außer letzte 4 strings: Hallo, ich habe verschieden lange Strings (Dateinamen) und möchte gerne den Dateinamen als Variable ausgeben: 1. Strings...
  5. Firefox erhält JavaScript-String-Optimierung

    Firefox erhält JavaScript-String-Optimierung: Eine Optimierung, die in Firefox 33 zu erwarten ist, wird für JavaScript-Strings wesentlich weniger Speicher benötigen. Damit wird in Firefox 33...