Fragen zur Machbarkeit in C/C++

Bisher programmierst du also unter Linux oder...?

Warum VS2010? Es gibt schon 2013...und VS ist auch nicht die einzige Möglichkeit.
Also,warum gerade VS2010?
Wenns nur wegen dem Buch ist: Ist vermutlich trotzdem hilfreich,
auch mit VS2013. Schaut zwar etwas anders aus, aber...

Und für dich wird es jetzt keinen Unterschied machen, aber wenn du C++ weiter lernst
kommst du irgendwann zu einer Stelle, wo Visual Studio zurzeit versagt
(C++11 - Features fehlen noch immer einige wichtige). Vielleicht gibt es bis dahin
ja schon die nächste Version, aber falls man sich jetzt entscheiden muss:

Wenn man "nur" C++ will, also sehr spezielle Windowssachen
(die es auch anderen Betriebssystemen nicht gibt) nicht benötigt
und bei Linux schon C++-Programme erstellt hat zurechtfindet,
sollte man sich auch einmal Mingw & Co anschauen.


Zu den Tools:
Bei den Expressversionen sind nicht alle Sachen dabei, die es gibt, nur deswegen sind sie auch gratis.
Aber von welchen "Tools" ist hier überhaupt die Rede? Checkboxen und Radiobuttons?
 
Hallo sheel,
danke für Dein Feedback. Zu Deiner Frage, ob ich bisher mit Linux programmiere, da muß ich nein sagen, denn ich programmiere ja noch garnicht, ich interessiere mich nur dafür und möchte soviel lernen, daß ich das Programm was mir vorschwebt, auch selber schreiben kann. Natürlich auch mit compilieren und linken, ebend bis es eine funktionierende Software ist. Ich habe eigentlich nicht vor alles was mit C++ möglich ist zu
erlernen. Du siehst ja selbst, was ich für Fehler fabriziere beim Tippen, wenn ich sowas im Programm habe, dann brauche ich mehr Zeit um die Fehler zu finden, als wenn ich so ein Programm neu schreibe. Da kann man schon sehen, ein richtiger Programmierer werde ich nie, eher ein nicht verzagender und emsiger Schreiber. :)
Ja ich habe einige Seite des Buches lesen können und ich kann günstig ein
gebrauchtes Visual C++ 2010 von jemand kaufen. Es muß ja nicht die aktuellste Version sein, womit ich meine ersten Schritte mache. Ich habe mir von MS das Express runtergeladen und lizensieren lassen. Aber was ich ausprobieren wollte läßt sich nicht machen, weil die Tools nicht dabei sind. Aber dafür bietet MS eine Trial-Version von Visual Studio C++ 2010 an. Mit welcher man alles ausprobieren kann, aber das anlegen von Projekten ist wohl irgendwie eingeschränkt, damit man nicht mehr als ein kleines Programm schreiben kann, jedenfalls sowas in der Art. Wobei mit Express da kann man auch Programme schreiben, sowohl über Konsole, wie auch in einem Window-Formular. Aber ich wollte mal Buttons und CheckBox ausprobieren, weil da glaube ich, über das Anklicken meine Möglichkeiten
auszuwählen. Denn das Klicken oder so, das führt zu einem Ereignis welches eine C++ Funktion/Anweisung ablaufen läßt, welche hierfür ins Programm geschrieben wurde. Danach geht es wieder ins Window, wo wieder was angeklickt wird, was zu einem Ereignis führt usw..
So habe ich es jedenfalls verstanden. was ich so an Infos gelesen habe.
Aber ich werde erstmal das Buch durchackern und mich danach entscheiden ob ich Visual C++ 2010 kaufe oder nicht. Wie gesagt ich bin auch bereit es über die Konsolle zu machen, wenn es denn geht, ich meine wenn es machbar ist. Zu den C++ 11 Features, sage ich mal nichts, weil ich darüber nichts weiss. Ja von dem Mingw & Co. da habe ich schon mal was gelesen, aber leider ist mir Linux total fremd. Ich bin froh, daß ich einigermaßen mit Window XP klarkomme. Aber ich habe davon gelesen, daß es sehr gute Programmiersoftware mit tollen Compilern unter Linux
geben soll. Wenn da was drunter ist, was für mich geeignet ist, dann wäre ich nicht abgeneigt. Es muß mir nur in der Bedienung entgegenkommen.
Weil ich schon gern sowas haben möchte, wo man mit modalen Dialogfelder arbeiten kann. Ich möchte wenn möglich Optionsfelder für mehrere Radiobuttons, wovon immer nur Einer angewählt werden kan, danach bestätigen, heißen wohl auch GroupBox oder Container. Auch die
Kontrollkästchen zum Auswählen von verschieden Optionen, also mehrere
Kästchen ankreuzen und bestätigen. Nun weißt Du was mir nun noch zusätzlich im Kopf rumgeht. Zu den von mir in Express vermißten Tools,
es sind die Tools, mit denen die Formulare ausgestattet werden können.
Ich kann sie nicht aufzählen, aber es sind diverse Menues und Felder für Ein- und Ausgabe oder mit festem Text, Farbegestaltung und, und, und..
Ich höre mal auf mit dem Schreiben, denn ich will auch nichts verkehrtes benennen. Also bis bald mal wieder.

Grüsse

Duda
 
Hallo,

ich weiß gar nicht wo ich anfangen soll. Der Text steckt voller Dinge, wo etwas zu gesagt werden sollte. Sicherlich können und werden andere noch ergänzen.

Also erstmal ist MinGW gerade für Windows und nicht Linux (MinGW - Minimalist GNU for Windows). Außerdem sollte die Express Version von VS2010 meines Wissens vollstens ausreichen, wesshalb du keine Version kaufen brauchst. Ich kann dir jetzt aus dem Kopf nicht sagen welche Features in Express fehlen, aber für alles gibts Alternativen und der Normaluser wird diese seltenst brauchen. Da du aber auch generell nur von "Tools" sprichst und keine Namen nennst, kann ich das jetzt nicht spezifizieren.

Für Checkboxen, oder andere GUI Elemente brauchst du keinen speziellen Compiler oder IDE, das kann theoretsich jeder, sofern Libraries vorhanden sind. Davon gibts einige gute, völlig umsonst und gut dokumentiert. Bevor du dich aber daran wagst empfehle ich dir eindringlich dich gründlich mit C++ zu beschäftigen, dafür reicht wirklich kein grobes Basis wissen aus. Natürlich gibt es Tutorials, Beispiele und Bücher, aber du wirst die wenigsten Dinge wirklich nachvollziehen können.

Zur VS-Version ist zu sagen. VS2010 reicht natürlich vollkommen aus, allerdings wenn man wie du gerade anfängt lohnt sich der Umstieg auf eine aktuellere Version. Modere Beispiele, Bücher etc. sind häufig schon so aktuell, dass diese sich mit dem neuen Standard auseinandersetzen und diesen auch ohne anzudeuten nutzen. Ich kenne viele die den Code dann einfach kopiert haben und sich gefragt haben warum denn der "gültige" C++ Code nicht funktioniert. Ohne Erfahrung oder den kompletten Standard von vorher und nachher zu kennen wirds schwierig das zu unterscheiden. Natürlich muss man nicht direkt mit der modernsten Version anfangen, hat aber auch keine Nachteile dadurch.

Das war jetzt erstmal das, was mir direkt aufgefallen ist.

Beste Grüße,
Jennesta
 
Ergänzend:
Ich glaube noch immer nicht, dass du irgendelche Tools der bezahlten Versionen braucht.
Für die nächsten Jahre dürfte Express (wenn überhaupt VS) definitv reichen.
Aber was ich ausprobieren wollte läßt sich nicht machen,
weil die Tools nicht dabei sind.
...
Auch die Kontrollkästchen zum Auswählen von verschieden Optionen,
also mehrere Kästchen ankreuzen und bestätigen. Nun weißt Du was mir
nun noch zusätzlich im Kopf rumgeht. Zu den von mir in Express vermißten Tools,
es sind die Tools, mit denen die Formulare ausgestattet werden können.
Ich kann sie nicht aufzählen, aber es sind diverse Menues und Felder für
Ein- und Ausgabe oder mit festem Text, Farbegestaltung und, und, und..
Für Checkboxen usw. gibt es in C++ nicht nur eine Möglichkeit,
sondern sehr viele. Die in VS integrierten Sachen (Winforms, WPF...)
sind auch bei Express dabei. Und man kann sich auch problemlos etwas anderes aussuchen.

Was man aber beachten sollte:
Winforms und WPF sind zwar nicht schlecht, aber kein richtiges C++
Es funktioniert in Visual Studio, aber nicht mit jedem C++-Compiler,
und hat auch ein paar Eigenheiten mit dem Programmcode.
 
Hallo Jennesta, hallo sheel,

danke für Euere Schreiben. Ich muß sagen. so einer wie ich(ich bin ein Fisch, ich schwimme hin. ich schwimme her, einmal kreuz und einmal quer), der sich noch nicht entscheiden kann, was gut oder besser für ihn wäre, der ist natürlich als Anfänger auf Ratschläge von wohlmeinenden, erfahrenen Mitgliedern angewiesen. Die Vorteile der Vorschläge von Euch beiden sind nicht von der Hand zu weisen. Also ich habe zu der "Express-Version" noch eine weitere C++ IDE für Window installiert. Es ist "Code::Blocks" und ich habe auch schon die DE-Sprachdatei nachinstalliert. Ihr habt beide recht, wenn man erstmal ohne große Geldausgaben damit ausprobieret was geht und was nicht. Zu CodeBlocks habe ich gleich noch eine Frage, habe unten rechts nach dem Starten eine Meldung mit dem Text:
"Can't find compiler executable in you configured search path's for GNU GCC Compiler", für mich bedeutet es frei übersetzt: " Das Programm findet in dem von mir configurierten Suchpfad für den GNU GCC Compiler nicht oder so, ich weiß aber nicht was da mit executable gemeint ist. Vieleicht der Compiler abgeschnitten oder so, ich meine es gibt keinen Weg dahin. Ich habe auch keinen Pfad configuriert, oder muß da noch was von Linux GNU oder so installiert werden. Vielleicht kann mir einer von Euch auf die Sprünge helfen. Habe erstmal so eine Art Vorstufe zu Mingw, weil ich unsicher bin, ob ich das mit C++11 überhaupt brauche. Ich werde nun erstmal mit den beiden Versionen ein wenig rumspielen und mal sehen, welche mir besser liegt. Danach sehe ich und auch Ihr wie es weiter geht. Ja wenn ich vor hätte ein Programmierer zu werden, dann natürlich gleich das Aktuellste, da bräuchte man nicht andauernt umdenken, ich meine zu einer neueren Version oder so. Aber ich will ja nur mal ein Programm auf die Reihe kriegen und danach wird auch die aktuellste Version zu einer Überholten Version. Habe dadurch erstmal einen kleinen Hang in Richtung "Meinung von sheel", warum nicht eine kostenlose IDE, welche auch fast alles kann. In dem Sinn macht es gut.

Viele Grüsse

Duda
 
Zu Codeblocks:

Zuerst einmal: Ein Compiler und eine IDE sind verschiedene Sachen:
Ein Compiler, üblicherweise, ein Konsolenprogramm, übersetzt den von dir geschriebenen Quelltext
in startbare Programme. Eine IDE ("integrated development environment") ist einfach gesagt
ein Schreibprogramm spezialisiert auf Programmcode, das eine Menge von Hilfsfunktionen mitbringt,
um die Arbeit für den Programmierer angenehmer/einfacher zu machen.
zB. kann man aus (wahrscheinlich) jeder IDE den Compiler per Button starten,
ohne selbst wirklich in der Konsole etwas machen zu müssen.

Wenn man will kann man den Code auch in Word schreiben und den Compiler
selbst in der Konsole verwenden. Nur hat man in Word die ganzen Programmierhilfssachen nicht,
und die deutsche Rechtschreibprüfung etc. ist sehr lästig.
Bei Visual Studio ist im Download eine IDE und ein Compiler dabei (aufeinander zugeschnitten)
CodeBlocks ist nur eine IDE, die mit verschiedenen Compilern funktionieren kann.
Eine Möglichkeit ist eben einer, der in der Konsole so wie GCC zu bedienen ist,
also zB. GCC selbst (der ist allerdings auf Linux) oder die Windowsvariante MinGW.

Um CodeBlock zu verenden muss man auch einen Compiler haben (aus dem Internet etc. separat)
und einstellen, in welchem Ordner der ist. Das ist hier das Problem.


Zu C++11: Da ist keine Alternative zum "normalen" C++, sondern das ist jetzt C++.
Also...
 
Zuletzt bearbeitet:
Um CodeBlock zu verenden muss man auch einen Compiler haben (aus dem Internet etc. separat)
und einstellen, in welchem Ordner der ist. Das ist hier das Problem.

Auf der Downloadseite bietet das CodeBlocks-Team einen mit MinGW gebündelten Download an: http://www.codeblocks.org/downloads/26#windows ("codeblocks-13.12mingw-setup.exe" runterladen)

Wieso willst du VS '10 Express verwenden, wenn du VS '13 Express genauso gut verwenden kannst? Beide sind kostenlos. Natürlich nimmt man dann das Aktuellere.

Thema GUI:
Meiner Meinung nach solltest du erst einmal deine Funktionen alle umgebungsunabhängig gestalten. Man sollte sie nutzen können, egal, ob das Programm jetzt nur eine Konsole bereitstellt oder GUI-Bibliothek X oder Y verwendet. Halte deinen Code allgemein nutzbar!
Dann kannst du eine Konsolenvariante programmieren. Wenn diese ordentlich funktioniert, kannst du dies schließlich mit einer GUI toppen.​


PS: Bitte vergebt mir, wenn ich etwas doppelt genannt habe. Ich habe die obigen Beiträge nur schnell überflogen :)
 
Hi ComFreek,
es ist schon spät, aber ich kann es nicht lassen, ich muß doch nochmal hier schauen, was los ist. Danke für Dein Schreiben. Was soll ich sagen, ich habe ein Bischen rumgetüftel und versucht mich schlau zu machen. Habe auch das MinGW runtergeladen, weil ich es mir auch mal ansehen wollte. Aber ich bin nur bids zum "MinGW Installations Manager" gekommen. Dort gibt es "Basic Setup", hier kann man auswählen:
mingw-developer-toolkit..bin..An MSYS Installation for MinGW Developer
mingw32-base ........................bin..A Basic MinGW Installation
mingw32-gcc-ada ................bin..The GNU Ada Compiler-
mingw32-gcc-fortran ..........bin..The GNU FORTRAN Compiler
mingw32-gcc-g++ ..............bin..The GNU C++ Compiler
mingw32-gcc-objc ..............bin..Object-C Compiler
msys-base .................................bin..A Basic MSYS Installation(meta)
und es gibt "All Packages", hier gibt:
MinGW:
MinGW Base System
MinGW Libraries
MinGW Contributed
MinGW Autotools
MSYS:
MSYS Base System
MinGW Developer Toolkit
MSYS System Builder

Also da weiß ich erstmal nicht was ich davon installieren soll. Aber ist auch noch nicht so wichtig, denn zwischenzeitlich habe ich fast die selben Gedanken gehabt wie Du. Denn erstmal muß man sein Projekt mal in den Griff kriegen, das heißt mal ein wenig an dem Programm arbeiten. Deshalb habe ich hier und im folgendem Schreiben auch noch so ein paar Code-Zeilen. Mit den Fragen was davon machbar oder besser ist.
Die Namen sind im Entwurf erstmal noch etwas lang, im Programm verwende ich dann aber Kürzel. Hier mal mein Programmanfang.
C++:
// anfangen.cpp - Für die Stringeingabe
 
#include <iostream>
#include <string>
using namespace std;
 
int main( )
{
string Buchstaben_Zahlen;
std::cout<<"Buchstaben_Zahlen:";
std::cin>>Buchstaben_Zahlen;
std::cout<<"Es wurde \""<<Buchstaben_Zahlen<<"\"eingegeben."<<std::endl;
}
// Die geschweiften Klammern nur der Form halber,
// hier drunter gleich noch eine andere Möglichkeit.
// wo kommt der Funktionskopf hin:
// cin.getline(char *string, int grösse, char trennzeichen='\n';
// Oder ist er irgendwie in dem Aufrufen von "Get" enthalten?
{
char Buchstaben_Zahlen[17];
 
// habe hier oben mal 17 eingegeben, Stellen 0 bis 16 und Endezeichen
 
std::cout<<"11 Buchstaben und 6 Zahlen:";
std::cin.get (Buchstaben_Zahlen,17);
 
// hier drüber habe ich mit der 17 ein Problem,
// was soll hier beziffert werden die Anzahl Zeichen oder die Positionen ?
 
std::cout<<"Es wurde \""<<Buchstaben_Zahlen<<"\"eingegeben."<<std::endl;
}

Ich sage mal Aufwiederlesen.

Viele Grüsse

Duda
 
Hallo ComFreek, sheel, Jennesta und Community,

hier gleich noch mein mein Versuch, einem der Programmanfänge mit den
nachfolgenden Zeilen zu verbinden, welche von Jannesta stammen.
Ich ich habe dann um die Zeilen der Berechnungen nicht zu lang werden zu lassen das zusammengesetzte Wort "Buchstaben_Zahlen" mal gekürzt in "Bu_Za". Ich weiss auch nicht so genau, ob es Steuerzeichen für den Compiler gibt, welche einen Zeilenumbruch im Code erlauben. Also bitte nicht so genau nehmen.
C++:
// anfangen.cpp - 1. Stringeingabe und Berechnen sum1 und sum2
 
#include <iostream>
#include <string>
using namespace std;
 
int main( )
   {
   string Buchstaben_Zahlen;
   std::cout<<"Buchstaben_Zahlen:";
   std::cin>>Buchstaben_Zahlen;
   std::cout<<"Die Eingabe war"<<Buchstaben_Zahlen<<std::endl;
 
// jetzt sollte Die Eingabe war und der String angezeigt werden,
// vorausgesetzt ich habe alles richtig gemacht.(bin am Zweifeln)
// muß ich jetzt zum Berechnen den String aufrufen wie folgt?
 
   std::string Buchstaben_Zahlen = "ABCDEFGHIJK123456";
   size_t length = Buchstaben_Zahlen.size( )
 
// nun lege ich sum1 sowie sum2 an und weise ihnen durch die Additionen
// die Werte zu. Hierdrin proforma meine angekündigten Kürzel "Bu_Za".
 
    unsigned int sum1 = int (Bu_Za[length -6]) + int (Bu_Za[length -4]
    + int (Bu_Za[length -2]);
    unsigned int sum2 = int (Bu_Za[length -5]) + int (Bu_Za[length -3]
    + int (Bu_Za[length -1];
}
// habe zwischendurch keine geschweiften Klammern gesetzt,
// weil ich nicht weiß, wie es gehandhabt wird( 1 oder 2 Blöcke?)
// sollte ich sum1 und sum2 besser nochmal außerhalb der Klammern
// aufrufen, damit im Laufe des Programmes auf diese Variablen
// zugegriffen werden kann. Ich weiß nicht wie es damit innerhalb der
// geschweiften Klammern aussieht.

Viele Grüsse

Duda
 
Zurück