Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: Ubuntu-Forum & Kubuntu-Forum | www.Ubuntu-Forum.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

  • »GarNixKönner« ist der Autor dieses Themas

Beiträge: 20

Registrierungsdatum: 01.02.2009

Derivat: Ubuntu

Architektur: 32-Bit PC

  • Nachricht senden

1

01.11.2009, 01:17

Umlaut im verzeichnisnamen und Zeilenumbruch bei der Ausgabe in meinem C++ Programm

Wieso muss mir eigentlich ständig so ein kranker Mist über den Weg laufen? :cursing:
Ich habe hier zwei C++ Quellcodes, die einfach nur zwei Zeilen in der Konsole ausgeben sollen. Die zwei Quellcodes unterscheiden sich nur durch ein "\n" am Ende der Ausgabe.

Code von Bla.cpp

Quellcode

1
2
3
4
5
6
7
#include <iostream>
using namespace std;
 
int main()
{
    cout << "Erste Zeile" << "\n" << "Zweite Zeile\n"; 
}


Quellcode von Blub.cpp:

Quellcode

1
2
3
4
5
6
7
#include <iostream>
using namespace std;
 
int main()
{
    cout << "Erste Zeile" << "\n" << "Zweite Zeile"; 
}


So sieht meine Konsole/Terminal aus nachdem ich beide Quelldateien in beiden Verzeichnissen kompiliert und ausgeführt habe:

Zitat


ich@Laptop:~$ cd Ubungen/
ich@Laptop:~/Ubungen$ g++ Bla.cpp -o Bla.out
ich@Laptop:~/Ubungen$ g++ Blub.cpp -o Blub.out
ich@Laptop:~/Ubungen$ ./Bla.out
Erste Zeile
Zweite Zeile
ich@Laptop:~/Ubungen$ ./Blub.out
Erste Zeile
Zweite Zeileich@Laptop:~/Ubungen$ cd ..
ich@Laptop:~$ cd Übungen/
ich@Laptop:~/Übungen$ g++ Bla.cpp -o Bla.out
ich@Laptop:~/Übungen$ g++ Blub.cpp -o Blub.out
ich@Laptop:~/Übungen$ ./Bla.out
Erste Zeile
Zweite Zeile
ich@Laptop:~/Übungen$ ./Blub.out
Erste Zeile
ich@Laptop:~/Übungen$ :~/Übungen$


Erstens fehlt im Ordner "Übungen" (also mit Umlaut) die Zeile "Zweite Zeile" in der Ausgabe und zweitens befindet sich der Cursor mitten in der Angabe des aktuellen Verzeichnisses, genau da wo der zweite Doppelpunkt ist (rot markiert).

Im Verzeichnus "Ubungen" (ohne Umlaut) sieht die Ausgabe so aus wie ich es erwarten würde: "Erste Zeile" steht in der oberen Zeile und "Zweite Zeile" steht darunter. Je nachdem ob "Bla.out" (mit Zeilenumbruch am Ende von "Zweite Zeile") oder" Blub.out" (ohne Zeilenumbruch am Ende von "Zweite Zeile") ausgeführt wurde, steht das "ich@Laptop:~/Ubungen$ cd .." unter bzw. hinter "Zweite Zeile".

Aber im Verzeichnis Übungen (mit Umlaut) passiert folgendes: die Ausgabe von Bla.out" (mit Zeilenumbruch am Ende von "Zweite Zeile") ist korrekt. Bei der Ausgabe von "Blub.out" (ohne Zeilenumbruch am Ende von "Zweite Zeile") fehlt "Zweite Zeile" komplett.

Für mich besteht da also ein Zusammenhang zwischen dem abschließenden "\n" und dem Umlaut im Verzeichnisnamen.
Nur welcher? Kann es sein dass "carriage return deutsch" nicht richtig funktioniert? Also dass der Cursor ganz an den Anfang zurückgesetzt wird anstatt an die Stelle wo die Ausgabe von "Zweite Zeile" endet und dann "Zweite Zeile" von der Konsole selbst mit "ich@Laptop:~/Übungen$" überschrieben wird? Aber wo ist dann für die Konsole das Problem? Muss irgendwas mit dem Umlaut sein...

Jaja, ich weiß: ich kann ja einfach Verzeichnissenamen ohne Umlaute benutzen...

Kennt das Problem jemand? Soll/muss man sowas an die Entwickler von Ubuntu/Linux weiterleiten?

@Edit Nr.1: Erstes Zitat wurde korrigiert aufgrund der ersten Antwort hier im Thread. Danke an Fredl99. Das ändert aber nichts daran, dass "Zweite Zeile" im Verzeichnis mit Umlaut nicht ausgegeben wird.
@Edit Nr.2: Fragestellung überarbeitet

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »GarNixKönner« (01.11.2009, 12:04)


2

01.11.2009, 01:44

Hi,
Wenn Deine Zitate direkt aus dem Terminal kopiert sind, dann hast du im ersten Zitat zweimal das gleiche Programm aufgerufen.

Ansonsten würde ich das gerne nach Softwareentwicklung verschieben...
schon passiert :)
Beim Erstellen dieser Nachricht kamen keine Tiere zu Schaden.
me is all sausage
but don't call me Ferdl