Sie sind nicht angemeldet.

[gelöst] Problem mit C Code

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.

  • »grillmeister« ist männlich
  • »grillmeister« ist der Autor dieses Themas

Beiträge: 32

Registrierungsdatum: 15.05.2012

Derivat: Kubuntu

Architektur: 32-Bit PC

Desktop: KDE4

  • Nachricht senden

21

29.01.2013, 21:16

Dankeschön für die schnelle Erklärung! :)

chroot

Ubuntu-Forum-Team

  • »chroot« ist männlich

Beiträge: 2 321

Registrierungsdatum: 04.03.2008

Derivat: Kein Ubuntu-Derivat

Architektur: 64-Bit PC

Desktop: KDE4

Andere Betriebssysteme: Fedora 27

  • Nachricht senden

22

30.01.2013, 12:42

Nein paar so hinweise:

Deine einrückungen sind teilweise etwas grausam, lieber einmal mehr eingerückt als nicht.

Warum verwendest du

Quellcode

1
char tag[20];
Verwende doch einfach std::string, dann sparst du dir die dimensionierung, außerdem verwendet kein mensch mehr in einem c++ programmen char arrays...

Includiere die richtigen bzw. nur die notwendigen header, alles andere bläht deine datei nur auf, da die file header per include in deine datei rein kopiert werden.

Mit richtigen header meine ich:

standard c

Quellcode

1
#include <string.h>


c++

Quellcode

1
#include <string>


Das sind nämlich teilweise verschiedene dateien.
"Do or do not. There is no try." (Yoda) || Thread auf gelöst/erledigt setzen

  • »grillmeister« ist männlich
  • »grillmeister« ist der Autor dieses Themas

Beiträge: 32

Registrierungsdatum: 15.05.2012

Derivat: Kubuntu

Architektur: 32-Bit PC

Desktop: KDE4

  • Nachricht senden

23

30.01.2013, 17:58

Mit der Überschrift hab ich mich vertippt (wegen meinem Compiler), ich programmiere eigentlich nur in C, an C++ habe ich mich noch nicht ran gewagt.

Ja, mir den headern hast du auf jeden Fall Recht! Aber dazu muss ich mir erst noch mehr Erfahrung sammeln welcher Header für was genau verwendet wird.

Wegen dem Einrücken habe ich mich auch schon paar mal gefragt wie ich das am besten gestalten sollte. Irgendwie wechselt das von Zeit zu Zeit immer mal. Wie machst du das denn?

  • »maettu« ist männlich

Beiträge: 3 299

Registrierungsdatum: 14.09.2005

Derivat: Xubuntu

Architektur: 64-Bit PC

Desktop: XFCE

  • Nachricht senden

24

30.01.2013, 18:14

Zitat

Irgendwie wechselt das von Zeit zu Zeit immer mal. Wie machst du das denn?
Es gibt im Prinzip keine offiziellen Regeln, theoretisch könntest du alles in einer Linie Programmieren, macht nur niemand ;)
Die meisten Leute rücken bei Funktionen/Schleifen ein, und dann am Ende wieder einmal zurück, so sieht man jeweils wo die Schleife startet und endet.

Viele Firmen haben übrigens bezüglich Coding eigene Regeln/Vorschriften, ist bei Programmieranfänger aber zu viel.

PS: Strings ist eines der komplizierteren Themas beim Programmieren, es gibt einfach zu viele Möglichkeiten ;)

chroot

Ubuntu-Forum-Team

  • »chroot« ist männlich

Beiträge: 2 321

Registrierungsdatum: 04.03.2008

Derivat: Kein Ubuntu-Derivat

Architektur: 64-Bit PC

Desktop: KDE4

Andere Betriebssysteme: Fedora 27

  • Nachricht senden

25

31.01.2013, 10:35

ich programmiere eigentlich nur in C, an C++ habe ich mich noch nicht ran gewagt.
Du solltest gleich zu c++ übergehen, da du, wenn du mit reinem c anfängst später zuviel wieder vergessen musst! (siehe void-pointer, char arrays, c-casts, usw.)

Grundsätzlich sollte man immer dann einrücken, wenn ein neuer anweisungsblock anfängt, z.b.:

Quellcode

1
2
3
4
if(irgendwas > 0)
{
--> mach_irgendwas();
}


Quellcode

1
2
3
4
5
6
7
8
9
if(irgendwas > 0)
{
--> MyVar *var = static_cast<MyVar*>(other_var);

--> if(var)
--> {
--> --> mach_was_anderes();
--> }
}


Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void MyClass::mach_irgendwas(int var)
{
--> switch(var)
--> {
--> --> case 0:
--> --> --> irgendwas_anderes();
--> --> --> break;
--> --> case 1:
--> --> --> noch_irgendwas_anderes();
--> --> --> break;
--> --> case 2:
--> --> --> irgendwas();
--> --> --> break;
--> }
}



Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void MyClass::mach_irgendwas(int var)
{
  	switch(var)
  	{
 	case 0:
            	irgendwas_anderes();
            	break;
 	case 1:
            	noch_irgendwas_anderes();
            	break;
 	case 2:
            	irgendwas();
            	break;
  	}
}
"Do or do not. There is no try." (Yoda) || Thread auf gelöst/erledigt setzen

  • »maettu« ist männlich

Beiträge: 3 299

Registrierungsdatum: 14.09.2005

Derivat: Xubuntu

Architektur: 64-Bit PC

Desktop: XFCE

  • Nachricht senden

26

31.01.2013, 10:39

Zitat

Du solltest gleich zu c++ übergehen, da du, wenn du mit reinem c
anfängst später zuviel wieder vergessen musst! (siehe void-pointer, char
arrays, c-casts, usw.)
Naja jein, das kommt auf das Tätigkeitsgebiet an. Ich habe auch mit c++ angefangen, bin aber dank verschiedenster Hardware-Programmierungen wieder bei c gelandet.
So ganz allgemein kann man das nicht sagen.

chroot

Ubuntu-Forum-Team

  • »chroot« ist männlich

Beiträge: 2 321

Registrierungsdatum: 04.03.2008

Derivat: Kein Ubuntu-Derivat

Architektur: 64-Bit PC

Desktop: KDE4

Andere Betriebssysteme: Fedora 27

  • Nachricht senden

27

31.01.2013, 10:44

Ja, da hast du recht, wenn du irgendwas spezielles machst, dann ist standard c ok, aber wenn du sowieso auf c++ umsteigen willst, dann am besten gleich mit c++ beginnen.
"Do or do not. There is no try." (Yoda) || Thread auf gelöst/erledigt setzen

28

02.02.2013, 18:39

Mit der Überschrift hab ich mich vertippt
Die kann man nachträglich ändern, so wie auch die eigenen Beiträge ;)

Zu meinen Hinweisen in #9 und #15 habe ich jetzt auch eine sticky Info verfasst. Hoffentlich bemerkt die jemand...
Beim Erstellen dieser Nachricht kamen keine Tiere zu Schaden.
me is all sausage
but don't call me Ferdl

  • »grillmeister« ist männlich
  • »grillmeister« ist der Autor dieses Themas

Beiträge: 32

Registrierungsdatum: 15.05.2012

Derivat: Kubuntu

Architektur: 32-Bit PC

Desktop: KDE4

  • Nachricht senden

29

03.02.2013, 10:54

Besten Dank chroot! Jetzt kann ich mir da auch was drunter vorstellen! :)

C/C++-Quelltext

1
2
3
4
5
6
void main(void)
{
	printf("Besten Dank auch an Fredl für das Hinzufügen der Buttons! :D");

	return 0;
}


Werde euch demnächst wieder mal mit Fragen belagern. Hab nämlich noch etliche weitere Projektideen :)