Meine Ubuntu fragen


Pliskin said:
@Fuchs

hier hat du das ganze proggi
Code:
#include <iostream>
#include <stdio>

using namespace std;
char d;

int main ()
{
cin >> d;
cout << d << endl;
getch()
}

1. stdio.h
2. meinst Du getchar()? Was willst Du machen, Tastendruck abwarten?
Geht entweder sehr haesslich und nicht empfohlen oder kompliziert.
(sprich: gets verwenden oder ein getch nachbauen)
3. da gehoert sehr wohl ein ; hin, egal was da steht.
Du koenntest mal glibc resp.
gleich das build-essential Metapaket installieren.

Find ich in synaptic nicht. Wo krieg ich das.

Ist ganz sicher da drin, vermutlich aber
in einem Repo welches Du nicht
angegeben hast (Multiverse oder Universe)

Allerdings hast Du das vermutlich eh schon
installiert, schau mal was unter
/usr/include/ so rumliegt.
_welche_ Suchfunktion? _Die_ Suchfunktion gibt
es nicht....

Na im browser in der symbolleiste gibts ein suchen button. Wenn ich aber eine Datei suche findet der die nicht.
Wenn ich aber manuell suche finde ich die datei.

Gnaaaaa, _welcher_ Browser? Nautilus?
Der ist auch Schrott (*scnr*).
Nein, moeglich, dass der beagle verwendet,
das aber auf Deinem System nicht
eingerichtet/installiert ist.

Ich habe es da eher mit slocate und find...

Fuchs
 
@Fuchs
Danke Für die antwort, aber... <_< langsam macht proggen keinen spass

wiso gehört da ein .h hin. Bei iostream geht das ja auch. Und in meinem c++ buch steht das man das nur bei älteren compilern braucht.
gesagt getan. ; reingemacht und es war nur noch ein fehler da. getch() wird immer noch nicht erkannt.
Also getchar(). Das erfühlt seinen zweck nicht. Das Problem ist ja das das Terminal einfach nach der letzten eingabe wieder schliesst.
Und ich krieg die ausgabe nicht mit. Also wollte ich ein getch() reinsetzten welchen auf einen tasteneingabe wartet.
Dadurch bleibt das Terminal solange offen bis ich einen tastendruck gemacht habe. Wie gesagt macht er nicht.

.h in die includes eingefügt und er zeigt mir das an
Code:
In Datei, eingefügt von 
/usr/lib/gcc/x86_64-linux-gnu/4.0.3/../../../../include/c++/4.0.3/backward/iostream.h:31,
                    von test.cpp:1:
/usr/lib/gcc/x86_64-linux-gnu/4.0.3/../../../../include/c++/4.0.3/backward/backward_warning.h:32:2: Warnung: #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X> header for C++ includes, or <iostream> instead of the deprecated header <iostream>. To disable this warning use -Wno-deprecated.
comilieren geht trotzdem. h bei iostream raus und er compiliert ohne zicken.
Ist ganz sicher da drin, vermutlich aber in einem Repo welches Du nicht angegeben hast (Multiverse oder Universe)
Sind alle angegeben
Gnaaaaa, _welcher_ Browser? Nautilus?
Halt der der bei ubuntu dabei ist. ich glaub nautilus.
und wie stell ich die scheisse ein das der alles findet.

Pliskin

PS: Ich glaub ich hab erwähnt das ich nur seit ca. zwei wochen ubuntu benutze vorher war das Windows
 
Pliskin said:
@Fuchs

hier hat du das ganze proggi
Code:
#include <iostream>
#include <stdio>

using namespace std;
char d;

int main ()
{
cin >> d;
cout << d << endl;
getch()
}

Du koenntest mal glibc resp.
gleich das build-essential Metapaket installieren.

Find ich in synaptic nicht. Wo krieg ich das.
_welche_ Suchfunktion? _Die_ Suchfunktion gibt
es nicht....

Na im browser in der symbolleiste gibts ein suchen button. Wenn ich aber eine Datei suche findet der die nicht.
Wenn ich aber manuell suche finde ich die datei.
Du hast so oder so ein ; vergessen.
ich dachte nach getch() kommt kein ;


erstends, die stdio ist nicht im c++ std:: standard, die ist im c standard, also

Code:
#include <stdio>
2. du willst mit cin eine eingabe in einem "langen" 8bit großen interger speichern -> 8 bit = zahlen von 0-255 -> maximal der string terminator '0' also wenn man enter drückt, ansonnsten gibt es einen buffer overflow

entweder allocierst du mehr speicher

mit char[anzahl zeichen - string terminator 0]
oder du verwendest
std::string statt char, dann brauchst du dir um speicher allocieren keine gedanken machen (würde ich wnen du eh in c++ schreibst bevorzugen)

für getch kenne ich aus dem stehgreif keine routine, das selbst nachzuschreiben, würde also fgets(NULL,NULL); oder dergleichen verwenden
 
boeseronkel2k said:
für getch kenne ich aus dem stehgreif keine routine, das selbst nachzuschreiben, würde also fgets(NULL,NULL); oder dergleichen verwenden

http://www.ohse.de/uwe/articles/getch.html

Wie gesagt, haesslich oder kompliziert.
In meinen Augen ist es auch ein absoluter
Schwachfug ein Terminalprogramm nach
Abschluss des Programmes auf eine Usereingabe
warten zu lassen. Aber ebend, dass Problem ist,
dass Pliskin gerne einen "Starter" haette, warum auch
immer. Siehe weiter oben im Thread, ich werde das nicht
alles wiederholen.
 
Pliskin said:
langsam macht proggen keinen spass

Aeh, was Du da machst ist von Programmieren
noch ziemlich weit entfernt, und wenn Du da
schon das Handtuch werfen willst:
Viel Spass bei den Problemen, die da noch
alle auf Dich zukommen werden.
Pliskin said:
getch() wird immer noch nicht erkannt.

getch() gibt es unter Unixoiden Systemen
aus sinnvollen Gruenden nicht, ist ergo auch
nicht Teil von der mitgelieferten glibc.
Lies den Link in dem Posting obendran.

Pliskin said:
Also getchar(). Das erfühlt seinen zweck nicht. Das Problem ist ja das das Terminal einfach nach der letzten eingabe wieder schliesst.

Das Problem ist, dass die mir bekannten Terminals bei
einem mit -e aufgerufenen Programm tatsaechlich
sich selbst beenden sobald das Programm zu ende ist.
Entweder man sucht sich ein Terminal welches dieses
Verhalten nicht zeigt, oder Du hinderst Dein Programm
daran sich zu beenden.

(Was ich bei Kommandozeilenprogrammen davon
halte habe ich oben schon geschrieben)
Pliskin said:
.h in die includes eingefügt und er zeigt mir das an
Code:
In Datei, eingefügt von 
/usr/lib/gcc/x86_64-linux-gnu/4.0.3/../../../../include/c++/4.0.3/backward/iostream.h:31,
                    von test.cpp:1:
/usr/lib/gcc/x86_64-linux-gnu/4.0.3/../../../../include/c++/4.0.3/backward/backward_warning.h:32:2: Warnung: #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X> header for C++ includes, or <iostream> instead of the deprecated header <iostream>. To disable this warning use -Wno-deprecated.
comilieren geht trotzdem. h bei iostream raus und er compiliert ohne zicken.

Das ist auch kein Fehler, sondern eine Warnung,
die Dir genau sagt warum sie kommt und wie Du sie loswirst.
(erste Loesung, nicht das Wno-deprecated flag)
Pliskin said:
Gnaaaaa, _welcher_ Browser? Nautilus?
Halt der der bei ubuntu dabei ist. ich glaub nautilus.
und wie stell ich die scheisse ein das der alles findet.

a) das ist ein Filemanager, kein Browser. Beim
Konqueror koennte man darueber diskutieren, da
der wirklich noch ein Browser ist.

b) Nautilus kenne ich (Gott sei dank) so wenig
wie nur moeglich. Der ist in meinen Augen einfach
nur unbrauchbar. Ergo: frag irgendwelche
GNOME-User oder in den Ubuntuforen.

Edit: okay, nautilus mal wieder
aus dem Tiefschlaf erweckt.
Ich weiss echt nicht, wie Leute damit arbeiten koennen.

Die Suche ist in der Tat eine Tragoedie, findet
hier nur was wenn ich den Ort schon ziemlich genau
einschraenke. Und selbst dann dauert
es beinahe Jahre.

Ich koennte hoechstens empfehlen
locate oder find zu verwenden.
Oder meinetwegen beagle.
Pliskin said:
PS: Ich glaub ich hab erwähnt das ich nur seit ca. zwei wochen ubuntu benutze vorher war das Windows

Mir ist egal wie lange jemand ein System benutzt,
ich setze nur voraus, dass der Nutzer lesen kann und will.
Bei Ubuntu musst Du Dich verhaeltnismaessig sehr
wenig mit dem System auseinandersetzen, also ein klein
wenig Selbststaendigkeit wuerde da schon helfen.

Allgemeiner Ablauf:

- man page / Hilfe lesen
- Suchen in FAQs/Foren
- Suchen im Netz

wenn das alles nicht hilft:

- Informationen bereithalten
- Formulierung ueberlegen
- In einem Forum / im IRC fragen

Wenn Du dies nicht befolgst kann man Dir haeufig
nur mit Schuessen ins Blaue oder mit grossem
Rechercheaufwand helfen. Das wird den meisten
Leuten dann zu dumm, womit sie Dir nicht mehr helfen wollen.

Meine Geduld ist durchaus endlich, vor allem
wenn ich nicht meinen ueblichen Stundensatz verlange.
Das geht den meisten Leuten so.

Fuchs
 
Wenn du mir net helfen willst, es zwingt dich keiner auf meine antworten zu schreiben. trotzdem danke ich das du es getan hast.

Ich weis das man sehr viel lesen muss für Linux. Was denkst du was ich die letzten zwei wochen gemacht habe.
Nur wie ich schon sagte manchmal sieht man den Wald vor lauter Bäumen nicht.
Ich habe vorher gegoogelt, doch haben mir die ergebnisse nicht weitergeholfen, und bevor ich 395.000 Seiten durchsuche
habe ich gedacht frage ich mal hier im forum.

Problem ist mittlerweise gelöst und proggie läuft super.

PS: @ boeseronkel2k : danke für den tipp mit string und warum das .h dazu muss.
 
Back
Top