Neu in C
-
Guten Tag zusammen,
habe seit gestern mit C das lernen angefangen, dass Buch heißt C Programmieren von Anfang an von Helmut Erlenkötter.
Nutze derzeit die Demoversion Microsoft Visual Studio 2012.
Mein Problem stellt sich schon am Anfang dar, die Dateiendung welches .c lauten soll ist schon mal nicht zu finden, welche Datei benötige ich hierbei?
Muss ich immer ein neues Projekt anlegen? Derzeit ist es cpp. Endung.Meine derzeitigen Programmiersprachen: PHP, VBA, JavaScript, Delphi bzw. Pascal.
-
dateiendung .c ist richtig.
dann schaltet der compiler automatisch in den c-modus.
wennze .cpp hast schalten der compiler in den c++ modus. das ist natürlich müll.
mfg
-
hume schrieb:
Muss ich immer ein neues Projekt anlegen? Derzeit ist es cpp. Endung.
was heiß immer, es kann schon von vorteil sein, für jedes programm einen eigenen proketordner zu haben, ja.
hume schrieb:
Nutze derzeit die Demoversion Microsoft Visual Studio 2012.
Mein Problem stellt sich schon am Anfang dar, die Dateiendung welches .c lauten soll ist schon mal nicht zu finden, welche Datei benötige ich hierbei?datei/neues projekt
prüfen ob links vorlagen->visual c++ ausgewählt ist
dann rechts auf leeres projekt, unten projektnamen und speicherort wählen -> ok
dann auf projekt/neues element hinzufügen und unten main.c eintippen -> ok
ready for hello world!
-
Ok, hab ich gemacht.
Gibt mir folgenden Fehler aus:
1>------ Erstellen gestartet: Projekt: OK, Konfiguration: Debug Win32 ------
1> main.c
1>c:\it dienstleistungen\c\ok\main.c(6): fatal error C1075: Dateiende erreicht, bevor das zugehörige Element für das linke Element Klammer '{' in "c:\it dienstleistungen\c\ok\main.c(3)" gefunden wurde
========== Erstellen: 0 erfolgreich, 1 fehlerhaft, 0 aktuell, 0 übersprungen ==========Code zum Test
#include <stdio.h> main () { printf ("\nDies ist ein erstes C-Programm.\n");
Nach drücken von F5 aurufen des Programms erscheint:
Dieses Projekt ist veraltet: OK-Debug Win32
Erstellen? Ja Nein.Wenn ja geklickt wurde: Fehler beim erstellen.
Das Programm ... kann nicht gestartet werden, das System kann die angegebene Datei nicht finden.
-
Da fehlt eine schließende geschweifte Klammer am Ende.
-
Da fehlt eine schließende geschweifte Klammer am Ende.
Stimmt. Aber wenn ich jetzt dass Programm ausführe müsste meines Wissens eine Vorschau erfolgen oder sehe ich dies in C falsch?
Konsole:
"OK.exe" (Win32): "C:\IT Dienstleistungen\C\OK\Debug\OK.exe" geladen. Symbole wurden geladen.
"OK.exe" (Win32): "C:\Windows\SysWOW64\ntdll.dll" geladen. PDB-Datei wurde nicht gefunden oder konnte nicht geöffnet werden.
"OK.exe" (Win32): "C:\Windows\SysWOW64\kernel32.dll" geladen. PDB-Datei wurde nicht gefunden oder konnte nicht geöffnet werden.
"OK.exe" (Win32): "C:\Windows\SysWOW64\KernelBase.dll" geladen. PDB-Datei wurde nicht gefunden oder konnte nicht geöffnet werden.
"OK.exe" (Win32): "C:\Windows\SysWOW64\msvcr110d.dll" geladen. Symbole wurden geladen.
Das Programm "[10544] OK.exe" wurde mit Code 0 (0x0) beendet.
-
hume schrieb:
Stimmt. Aber wenn ich jetzt dass Programm ausführe müsste meines Wissens eine Vorschau erfolgen oder sehe ich dies in C falsch?
Was meinst du denn mit Vorschau? Das Programm wird ausgeführt, schreibt "\nDies ist ein erstes C-Programm.\n" nach stdout und dann ist es beendet. Dein Problem ist wohl, dass du gar nicht siehst, dass da etwas ausgegeben wird, weil es, sofern es angezeigt wird, gleich wieder beendet wird. Starte mal mit CTRL+F5.
-
Was meinst du denn mit Vorschau? Das Programm wird ausgeführt, schreibt "\nDies ist ein erstes C-Programm.\n" nach stdout und dann ist es beendet. Dein Problem ist wohl, dass du gar nicht siehst, dass da etwas ausgegeben wird, weil es, sofern es angezeigt wird, gleich wieder beendet wird. Starte mal mit CTRL+F5.
Augabe wie z.B. bei PHP echo "Hallo";
Genau dass habe ich gemeint dass es gleich wieder verschwindet. Wenn ich STRG+F5 drücke lädt andauernt, passiert aber sonst nichts.
-
hume schrieb:
Wenn ich STRG+F5 drücke lädt andauernt, ...
was meinst du damit?
Es sollte ein CMD-Fenster aufgehen in dem dann steht
Dies ist ein erstes C-Programm. Drücken Sie eine beliebige Taste . . .
-
Du kannst am Ende zum testen ein temporäres getchar(); einfügen
#include <stdio.h> main () { printf ("\nDies ist ein erstes C-Programm.\n"); getchar(); <---- Das fürt dazu, dass das programm auf eine Eingabe wartet... }
-
LipkeGu schrieb:
du musst am ende ein temporäres getchar(); einfügen:
Nein.
Strg-F5 (Starten ohne Debuggen) reicht. VS ist so nett und macht das so wie gewünscht.
-
du musst am ende ein temporäres getchar(); einfügen:
Jop, jetzt geht alles einwandfrei danke
-
hume schrieb:
du musst am ende ein temporäres getchar(); einfügen:
Jop, jetzt geht alles einwandfrei danke
Sollte es aber nicht. Beziehungsweise hier funktioniert es zwar, aber beim nächsten Programm wird das schon nicht mehr gehen. Versuch lieber heraus zu finden, wieso CTRL+F5 bei dir nicht geht.
-
Sollte es aber nicht. Beziehungsweise hier funktioniert es zwar, aber beim nächsten Programm wird das schon nicht mehr gehen. Versuch lieber heraus zu finden, wieso CTRL+F5 bei dir nicht geht.
Das stimmt, bei dem Rechenprogramm geht es nicht mehr. Nun wenn ich CTRL+F5 drücke wird dass Programm aufgerufen hier mal der Quellencode:
#include <stdio.h> main () { float x,y; printf("\n\t2 Rechenprogramm\n"); printf("\nBitte x eingeben:"); scanf("%f",&x); printf("Bitte y eingeben:"); scanf("%f",&y); printf("\n %f + %f ist %f",x,y,x+y); printf("\n %f - %f ist %f",x,y,x-y); printf("\n %f * %f ist %f",x,y,x*y); printf("\n %f / %f ist %f",x,y,x/y); }
Ist es möglich die Ergebnisse zu sehen, bevor dass Programm beendet wird, sprich Funktion oder so?
-
Hier liegt das Problem daran, dass von der Eingabe beim y noch die Entertaste im Eingabestrom steht. Die wird vom
scanf
nicht mehr eingelesen.Damit es Standardkonform ist: http://www.c-plusplus.net/forum/p1146014#1146014
-
hume schrieb:
Ist es möglich die Ergebnisse zu sehen, bevor dass Programm beendet wird, sprich Funktion oder so?
Ja! eigentlich ist dazu das CTRL+F5 da. Du drückst schon die richtigen Tasten, oder? Gleichzeitig? Und deine CTRL-Taste funktioniert auch?
-
Ja! eigentlich ist dazu das CTRL+F5 da. Du drückst schon die richtigen Tasten, oder? Gleichzeitig? Und deine CTRL-Taste funktioniert auch?
Ja, er öffnet mich auch dass Fenster. Nun habe ich mir den Link http://www.c-plusplus.net/forum/p1146014#1146014 angesehen und so ungefähr übernommen, nun wird am Anfang ein leeres Fenster gezeigt durch drücken Enter erscheint dann dass eigentliche Programm. Es verschwindet aber nach den Eingaben dass Fenster und es werden keine Ergebnisse angezeigt.
#include <stdio.h> main() { int c,x,y; while ((c = getchar()) != EOF && c != '\n'); printf("\n\t1. Rechenprogramm\n"); printf("\nBitte x eingeben:"); scanf("%i",&x); printf("Bitte y eingeben"); scanf("%i",&y); printf("\n %i + %i ist %i",x,y,x+y); printf("\n %i - %i ist %i",x,y,x-y); printf("\n %i * %i ist %i",x,y,x*y); printf("\n %i / %i ist %i",x,y,x/y); printf("\n %i %% %i ist %i",x,y,x%y); }
-
Die while-schleife gehört an das Ende vom Programm.
Du willst damit ja die Reste von der Eingabe vom y-Wert abfangen.
-
Die while-schleife gehört an das Ende vom Programm.
Vergesse ich immer wieder
Hier der korrekte Code:
#include <stdio.h> main() { int c,x,y; printf("\n\t1. Rechenprogramm\n"); printf("\nBitte x eingeben:"); scanf("%i",&x); printf("Bitte y eingeben"); scanf("%i",&y); printf("\n %i + %i ist %i",x,y,x+y); printf("\n %i - %i ist %i",x,y,x-y); printf("\n %i * %i ist %i",x,y,x*y); printf("\n %i / %i ist %i",x,y,x/y); printf("\n %i %% %i ist %i",x,y,x%y); getchar(); while ((c = getchar()) != EOF && c != '\n'); }
-
hume schrieb:
Ja! eigentlich ist dazu das CTRL+F5 da. Du drückst schon die richtigen Tasten, oder? Gleichzeitig? Und deine CTRL-Taste funktioniert auch?
Ja, er öffnet mich auch dass Fenster.
Es sollte aber nach Beenden offen bleiben! Das ist doch gerade der Unterschied zwischen F5 und CTRL+F5. Wenn das bei dir nicht so ist, dann ist bei dir etwas kaputt, etwas ist total verstellt oder du machst etwas falsch.