Newbee Fragen
-
Er will strukturiert coden und will es mit C machen, postet aber C++ Code

Was hast du denn für einen Compiler, wenn dieser Code bei dir nicht geht, der vorallem nicht mal deine gewünschte Sache erfüllt.
-
Da liegt mein Problem: ich kann c und cpp nicht auseinanderhalten, da beides so fließend ineinander übergeht.
ich kompiliere mit cl.exe, dem Kommandozeilencompiler von Visual Studio 9
und ich möchte es gern vorrangig in c versuchen, da ich microcontroller coden will und die werden in c programmiert.
-
kellerkend schrieb:
Da liegt mein Problem: ich kann c und cpp nicht auseinanderhalten, da beides so fließend ineinander übergeht.
das stimmt so nicht wirklich.
du musst doch wissen, was du möchtest!?kellerkend schrieb:
ich kompiliere mit cl.exe, dem Kommandozeilencompiler von Visual Studio 9
wieso tust du das?
einfach F5 drücken ist wohl zu einfach? Oder hast du dann den Eindruck, dass es zu einfach geht?
Oder weist du nicht, wie du ein Projekt erstellen kannst?bb
PS: Hast du vll nen Buch oder so was über C _oder_ C++? Oder wie hast du dir vorgestellt, das ganze zu lernen?
-
unskilled schrieb:
du musst doch wissen, was du möchtest!?
Das tue ich. Was hat das damit zu tun, dass ich neu in c bin, c und cpp nicht auseinanderhalten kann und deshalb im Forum Hilfe suche?
unskilled schrieb:
wieso tust du das?
einfach F5 drücken ist wohl zu einfach?Habe ich geschrieben, dass ich meinen Code in der Oberfläche von Visual Studio schreibe?
Ich schreibe meinen Code im "Programmers Notepad" und drücke dort F9. Damit wird mein geschriebener Code mit einem von mir ausgewählten Compiler (cl.exe) kompiliert.
Was der sarkastische Unterton in deinem Post soll, verstehe ich nicht.Bücher über c habe ich viele, genauso wie Referenzen und Foren etc. Jedoch kann ich einem Buch nicht die Frage stellen "worin besteht der Unterschied zwischen #include <string> und #include <string.h>"
Ich könnte dort zwar stundenlang suchen (wonach? welche Schlüsselwörter?), habe mich in dem Fall aber fürs Forum entschieden, weil ich da hoffte, schneller eine Antwort zu erhalten.
-
Nein - offensichtlich weist du nicht, was du möchtest

Oder wenn doch, beantworte doch mal die Frage:
Willst du C oder C++ lernen?Dann zeig mal, mit welchen parametern du die cl.exe aufrufst.
Und wieso nutzt du nicht einfach _nur_ Visual Studio?
Die Frage worin der Unterschied besteht, habe ich dir schon beatnwortet - 4. Post oder so. Gab noch ne Antwort, die dir weiterhelfen sollte (gab also nach wenigen Minuten die Antwort, die du gesucht hast)...Wenn du nicht liest und dich stur stellst, wirst du hier wohl auch keine Hilfe finden...
bb
PS: Falls du dich für C++ entschieden hast, dann findest du hier so ziemlich alle Header und ne tolle Doku dazu:
http://www.cplusplus.com/reference/
-
#include <string>funktioniert nicht mit einem C-Compiler. Das ist der Unterschied.
-
C und C++ sind zwei sehr verschiedene Sprachen. Man sollte sich schon entscheiden, welche von beiden man spricht. C++ enthält zwar (fast) vollständig die Sprache C, aber das ist eher aus Gründen der Abwärtskompatibilität, als das man diese Sachen wirklich bräuchte. Die Herangehensweise an Probleme ist in beiden Sprachen völlig verschieden. Das sieht man auch sehr gut an deinem String-Problem, denn die Behandlung von Zeichenketten ist sehr unterschiedlich:
string.h, in C++ auch cstring genannt, ist der Header der Sprache C für die Behandlung von Zeichenketten. Zeichenketten werden in der Sprache C über char-Arrays realisiert. Entsprechend enthält der Header string.h (bzw. cstring) die Deklarationen einer Reihe von Funktionen die auf char-Arrays operieren. Eine Referenz für diese Funktionen kannst du hier lesen:
http://www.cplusplus.com/reference/clibrary/cstring/In C++ geht man ganz anders an Zeichenketten heran. Dort gibt es eine Klasse namens std::string, die Zeichenketten repräsentiert. Diese Klasse arbeitet intern möglicherweise mit char-Arrays. Muss sie aber nicht und das interessiert eigentlich auch niemanden. Gemäß der C++-Philosophie nimmt diese Klasse dem Programmierer viele der Aufgaben ab, an die er bei char-Arrays noch selber denken musste. Der Header string enthält die Deklaration dieser Klasse und von ein paar Funktionen die auf dieser Klasse operieren. Es sind nur ein paar Funktionen, da vieles der Funktionalität als Methoden der Klasse std::string umgesetzt ist. Eine Referenz findest du hier:
http://www.cplusplus.com/reference/string/
-
kellerkend:
Zu deiner Frage nach dem Grund fuer's Verschieben:
In deinem Ausgangsposting kam praktisch nichts C-spezifisches vor. Dafuer jedoch C++-Code. Deshalb bin ich wegen der Fragen zu Compilerfehlern davon ausgegangen, dass du Fragen zur C++-Syntax hast.Deine Frage zu Verzeichnissen hat wie bereits erwaehnt wurde weder etwas mit standard C noch mit C++ zu tun, sondern haengt vom Betriebssystem ab, fuer das du programmierst (obwohl ich bezweifle, dass du auf einem mC haeufig in die Verlegenheit kommen wirst, dich um Dateien oder Ordner scheren zu muessen).
Fuer PC-Betriebssysteme liegt der vollstaendige Pfad des laufenden Programms AFAIR idR. im argv[0].Wenn du also deine Fragen mal thematisch sinnvoll sortiert und genauer ausformuliert hast, schlage ich vor, dass du in den entsprechenden Foren neue Threads aufmachst.
-
Meine Herren... ich habe vorhin schon einmal geschrieben, dass ich C lernen möchte.
Der von mir gepostete cpp Code ist darauf zurückzuführen, dass ich c und cpp (noch) nicht trennen kann.
Die cl.exe rufe ich nicht mit Parametern auf, sondern das Programm "Programmers Notepad". Die Parameter habe ich zu Beginn einmal im Programm "Programmers Notepad" hinterlegt und lauten
Worauf willst du eigentlich hinaus? Warum kommst du ständig mit Unterstellungen bzw verkaufst mich für dumm, anstatt einfach meine Frage zu beantworten oder, wenn du das nicht kannst (oder nicht willst), einfach nichts zum Thema zu schreiben?!Warum ich nicht VS benutze? Warum fährt jemand lieber Fahrrad als Auto?
Machst du das immer so, wenn jemand fragt, wie er seine Fahrradkette am besten ölt, dann vorzuschlagen, doch besser Auto zu fahren?Was meine Frage angeht: ich hatte Mr X zitiert und geantwortet, in der Zwischenzeit hast du geantwortet und die Frage war geklärt. Später habe ich die Frage nocheinmal als Argument benutzt, um dir zu erklären, warum ich meine Frage hier im Forum gestellt habe und nicht das Buch zur Hand genommen habe.
Und das mit dem stur stellen... dazu fällt mir nichts mehr ein

Leute, das ist mein erster Beitrag im neuen Forum und sofort werd ich hier belehrt und als blöd hingestellt. Das kanns eigentlich nicht sein.
Effektiv ist bisher rausgekommen:
<xxx> ohne .h ist cpp, genauso wie std::string, std::cin und std::coutda ich gerne in c coden möchte, wäre es schön, wenn mir jemand weiterhelfen könnte, wie man in C (NICHT c++) mein am Anfang beschriebenes Problem löst.
Dabei reicht mir C-Code, es muss kein anderes Programm sein...
edit: der gesamte beitrag ist die Antwort auf unskilled's Beitrag...
-
Hier wird dir gezeigt wie (englisch): http://www.cs.cf.ac.uk/Dave/C/
google spuckt das aus: http://de.wikibooks.org/wiki/C-Programmierung
-
Ich wollte die Parameter nur wissen, weil die dann noch die einzige Fehlerquelle sein könnten - wenn du allerdings C programmieren möchtest, wirst du dort auch andere Parameter angegeben haben und er "kann" dann keinen C++ Quellcode compilieren - damit ist auch der Fehler geklärt.
Naja - die Vorzüge vom VS sind enorm (da würde schon der Debugger als Grund reichen).
Wie bereits beschrieben geht dein Problem eben _NICHT_ mit standard C zu lösen, sondern du wirst auf die WinAPI zurückgreifen müssen.
ich weiß nicht ganz genau, wie zuverlässig die Lösung hier ist, aber
int main(int argc, char* argv[]) { printf("%s", argv[0]); }sollte gehen - für mehr brauchst du dann wirklich die WinAPI.
bb
-
Nobuo T schrieb:
Deine Frage zu Verzeichnissen hat wie bereits erwaehnt wurde weder etwas mit standard C noch mit C++ zu tun, sondern haengt vom Betriebssystem ab, fuer das du programmierst
Also, im Moment möchte ich wissen, wie man in C den Pfad ermittelt, in dem die exe liegt.
Die Microcontroller habe ich nur erwähnt, um mich zu rechtfertigen, warum ich C und nicht C++ lernen möchte.edit: der aufruf vom compiler lautet: cl.exe xyz.c
-
Naja, lass ihn erstmal die Grundlagen lernen. Die WinAPI ist wahrscheinlich gar nicht auf seiner Zielplattform verfuegbar. Sein Problem war Text einlesen und wieder ausgeben. Dazu braucht es die WinAPI auch gar nicht.
Also, im Moment möchte ich wissen, wie man in C den Pfad ermittelt, in dem die exe liegt.
Hatten wir das nicht erst im Forum? Kam da nicht raus: geht nicht mit C allein? Normalerweise braucht man auch nicht den Pfad der .exe. Ich empfehle erstmal, etwas mehr Programmieren zu lernen. Siehe Links oben.
-
knivil schrieb:
Sein Problem war Text einlesen und wieder ausgeben. Dazu braucht es die WinAPI auch gar nicht.
HÄ? Ich wiederhole: mein Problem war: wie man in C den Pfad ermittelt, in dem die exe liegt.
Und das ist ja nun anscheinend geklärt

Ich finds grad lustig, wie so ein einfacher Sachverhalt zu so großer Verwirrung führen kann (liegt wohl an der Ähnlichkeit von c und cpp [bei einfachen Codes], weswegen ich mich als Anfänger auch schwer tue, die beiden Dinge zu trennen)
-
Hast du meinen Post gelesen? Hast du die Forensuche benutzt?
-
kellerkend schrieb:
Also, im Moment möchte ich wissen, wie man in C den Pfad ermittelt, in dem die exe liegt.
Wie schon geschrieben, kommt es dabei auf das Betriebssystem an. Du kannst an sich weder mit C noch mit C++ irgendwelche Pfade von exe-Dateien bestimmen.
Da du aber nun schon von exe-Dateien schreibst, rate ich mal in's Blaue, dass du fuer ein neueres Windows programmieren willst.Den Pfad zum laufenden Programm (der exe-Datei) kannst du idiotensicher wahrscheinlich am besten mit Hilfe der WinAPI bestimmen. Leute, die sich damit auskennen, tummeln sich im WinAPI-Forum. Wenn du dort fragst, wie man "den Pfad ermittelt, in dem die exe liegt", wirst du wahrscheinlich am schnellsten eine zufriedenstellende Antwort erhalten. Evtl. sogar einen Beispielcode in C.
Ansonsten versuche dein Glueck doch wie geschrieben mal mit dem 1. Argument. (suche nach argv und argc).
-
Liegt eher an dir

-
Danke für deine Antwort, Nobuo T! Werd ich mal so versuchen!