Sie sind nicht angemeldet.

1

26.07.2015, 12:17

Auf der Stelle schreiben.

Hallo Forum,

seit Ewigkeiten habe ich einige Bücher über C und C++ die ich gerne durchgearbeitet haben möchte, was ich nun endlich angehen konnte, da ich auch etwas C/C++ beruflich gebrauchen kann.
Nun habe ich das Grundlagenbuch fast durch und wollte mal ein einfaches Programm schreiben.

Mein Projekt: Einfach das Wort Linux auf der stelle zu schreiben. Dachte es wäre einfach, aber es funktioniert leider in keiner meiner getesteten Version :)

C

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int main() {
  int num;
  num = 1;

  printf("L");
  sleep(num);
  printf("i");
  sleep(num);
  printf("n");
  sleep(num);
  printf("u");
  sleep(num);
  printf("x");
  sleep(num);
  printf("\n");
  return 0;
}


Ich dachte eigentlich das einfach L ausgegeben wird, eine Sekunde warten und danach \b für Curser um eine Position nach links (backspace), danach überschreiben von L nach i und wieder eine Sekunde warten und \b.
Das geht aber nicht und ich verstehe nicht warum.
Was macht das Programm genau? und wie würde es denn Funktionieren das man auf der Stelle schreiben kann?
Das hat jetzt mein Wissensbegierde geweckt.

Gruß Sandy
knasan

- Bug oder Feature, das darf man sich hier aussuchen. -

2

02.08.2015, 22:13

Hallo im Forum

Das ist zwar kein C/C++ Forum aber so banale Dinge bekommen wir auch noch hin :whistling:

Dein Programm macht genau das was du wolltest. Außer das du \b nur erwähnst aber nicht schreibst. Was du aber nicht bedacht hast ist, das stdout gepuffert wird, also buffered. Wird also erst angezeigt wenn ein \n kommt. Das kannst du aber ändern indem du

1. anstelle von stdout stderr nimmst. Der wird normalerweise nicht gepuffert.

2. ein fflush(stdout); nach jedem printf(""); eingibst, oder einfach

3. den Puffer mit setbuf(stdout, NULL); auf NULL setzt.

Hier noch ein Link http://openbook.rheinwerk-verlag.de/c_vo…cf5ccb82df1cd9c . Dort steht auch wie du erfährst wie groß dein Puffer ist falls du diesen wieder zurücksetzen möchtest.
Intel Core2 Quad CPU @ 2.40GHz mit Gentoo/Gnome3

3

16.08.2015, 12:50

Hallo Dirk,

erst mal Danke für dein Posting.
Ich habe mir auch gedacht, das GentooForum kein C/C++ Forum ist und deswegen habe ich mich bei eines Registriert, aber noch nichts gepostet.

Als keinen einstieg Arbeite ich dies durch http://wwwuser.gwdg.de/~kboehm/ebook/inhalt.html ist zwar Veraltet aber ich finde sehr gut und verständlich geschrieben. Außer GTK Programmierung (was nur kurz angekratzt wird) scheint mir dieses Buch einen guten Überblick über die Sprache C zu liefern. Danach werde ich mich nochmal über dieses kleine Projekt machen, da ich denke dies ist eine gute Übung C zu lernen.

Gruß Sandy
knasan

- Bug oder Feature, das darf man sich hier aussuchen. -

4

16.08.2015, 16:06

Naja eigentlich steht ja --> GentooForum.de --> Gentoo Allgemein --> Softwareentwicklung und nun mit C / C++ Entwickelt man halt Software ^^

also im Prinzip war der Post eh richtig ^^

Ich kann dir das Buch empfehlen ... http://www.amazon.de/-Programmierer-lern…r+programmierer

Ich habe leider fast keine Zeit im Moment mein stümperhaftes C / C++ zu verbessern

lg
schatti
''''''''''''''''''''''''''''''''''''''''''''''''
Gentoo-Linux
der G-Punkt eines Pc´s

''''''''''''''''''''''''''''''''''''''''''''''''