C Kann programm mit MS Visual 2010 nicht kompilieren

Occasus

Cadet 3rd Year
Registriert
Dez. 2010
Beiträge
46
Hi
ich habe ein programm mit ms visual göffnet kann es aber nisht ausfüren oder kompilieren.
hab jetzt über eine stunde gegoogelt und inde immer nur das ich einfach nur f5 drücken müsste....

screenshot:
komilieren.png


daher meien frage: wie kompilier ichs und wie führ ich das programm aus?
vielen dank
 
Rechtsklick auf Projektmappe "Solution1" und dann auf erzeugen drücken - dann dauert das eine gewisse Zeit und sollte im Falle eines Fehlers eine Meldung ausgeben, wo es kracht.
 
Nachdem Screenshot zu urteilen hast du einfach nur eine *.cpp Datei geöffnet. Visual Studio benötigt jedoch ein "Project". Dies geht über "Datei" -> "Neu" -> "Projekt". Alternativ kannst du auch über die Kommandozeile compilieren:

Start Menü -> Alle Programme -> Visual Studio -> "Visual Studio Command Prompt" öffnen. Dort dann in den Ordner wo deine Datei liegt navigieren (via cd) und "cl <dateiname>" eingeben.
 
und wie starte ich ein projekt in c und nicht c++?
 
Nach dem Screenshot arbeitest du mit VS C++ Express. Soweit ich weis können die Expresseditionen nur mit einer einzigen Programmiersprache umgehen. In deinem Fall ist das C++.
Eine Version für reines C gibt es meines wissens nicht als Express Edition. Du wirst also wenn du Visual Studio kostenlos verwenden willst auf C++ setzen müssen.

Je nachdem was du vor hast dürften die Unterschiede evtl. für dich gar nicht ins gewicht fallen, der c++ Compiler sollte auch reinen C-Code übersetzen können.

Das sieht mir nach einer Übung im zusammenhang mit einem Studium aus. Wenn dem so ist, dann prüfe doch mal ob du über deine Uni nicht Zugang zu MSDNAA/Dreamspark Premium hast, dort sollte es Versionen von Visual Studio geben, welche auch einen C-Compiler mitbringen.
 
Zuletzt bearbeitet: (Studium?)
Für C sollte es doch genügen, die Dateiendungen auf .c zu ändern.
 
ne er kompeliert es dann nicht hab ich shco nprobiert gehabt
und ja is fürs studium

was fürn ms visual bräuchte ich denn für c? hab durch die uni zugang zu kostenloser software
 
Du musst einfach ein Win32 Konsolenprojekt anlegen, dann kannst du auch C Programme in VS C++ ausführen.
 
Poste mal den Quellcode bitte.
 
#include <stdio.h>
#include <string.h>
#include <malloc.h>

/* Struktur des Datensatzes */
typedef struct stud_type_ {
int matnum; /* Matrikelnummer, */
char vorname[20]; /* Vorname und
char nachname[20]; /* Nachname sind Eintraege.*/

/* Die Datenbank ist eine einfach verkettete Liste. */
struct stud_type_ *next_student;
} stud_type;

/* Initialisierung der Datenbank */
stud_type *studenten_liste = NULL;

int is_empty() /* Ist die Datenbank leer? */
{
return (studenten_liste==NULL);
}

/* Einfuegen eines Elementes */
void enqueue(int matnum, char vorname[20], char nachname[20])
{
stud_type *curr, *next, *neuer_student;

neuer_student = malloc(sizeof(stud_type)); /* Speicher fuer Element */
strcpy(neuer_student->vorname,vorname); /* anfordern und mit Daten */
strcpy(neuer_student->nachname,nachname); /* fuellen. */
neuer_student->matnum = matnum;

curr = studenten_liste; /* Neues Element in DB einfuegen */

if ((curr==NULL) || (curr->matnum > neuer_student->matnum))
{
neuer_student->next_student = curr; /* Sonderfall: an erster Stelle */
studenten_liste = neuer_student; /* einfuegen */
}
else
{
next = curr->next_student; /* Durchmustern der DB */
while ((next!=NULL) && (next->matnum < neuer_student->matnum))
{
curr = next;
next = next->next_student;
}
neuer_student->next_student = next; /* Neues Element nach curr und */
curr->next_student=neuer_student; /* vor next einfuegen */
}
}

/* Loeschen eines Elementes */
int dequeue(int matnum)
{
stud_type *curr,*next;

if (is_empty(studenten_liste))
return 0; /* Rueckgabewert: Fehler!*/

curr=studenten_liste;
if (curr->matnum==matnum) { /* Sonderfall: erstes Element */
studenten_liste=curr->next_student; /* loeschen */
free(curr); /* Speicher freigeben */
return 1; /* Rueckgabewert: OK. */
}
next=curr->next_student; /* Durchmustern der DB */
while ((next!=NULL)&&(next->matnum<matnum))
{
curr=next;
next=next->next_student;
}

if ((next==NULL)||(next->matnum!=matnum))
return 0; /* Rueckgabewert: Fehler! */

curr->next_student=next->next_student; /* Element loeschen */
free(next); /* Speicher wieder freigeben */

return 1; /* Rueckgabewert: OK. */
}

/* Auslesen eines Elementes. */
int get_student(int matnum, char vorname[20], char nachname[20])
{
stud_type *curr;

curr=studenten_liste; /* Durchmustern der DB */
while ((curr!=NULL)&&(curr->matnum<matnum))
curr=curr->next_student;
if ((curr==NULL)||(curr->matnum!=matnum))
return 0; /* Rueckgabewert: Fehler! */
else
{
strcpy(vorname,curr->vorname);
strcpy(nachname,curr->nachname);
return 1; /* Rueckgabewert: OK. */
}
}

/* Test der Listenfunktionen. */
int main() {
char vorname[20],nachname[20];
stud_type *curr;

printf(">>> Fuege neuen Studenten in die Liste ein: Bill Clinton [6666] ...\n");
enqueue(6666,"Bill","Clinton");

printf(">>> Fuege neuen Studenten in die Liste ein: Hillary Clinton [4711] ...\n");
enqueue(4711,"Hillary","Clinton");

printf(">>> Fuege neuen Studenten in die Liste ein: Newt Gingrich [9999] ...\n");
enqueue(9999,"Newt","Gingrich");

printf(">>> Test, ob die Matrikelnummer 0815 bereits erfasst wurde ...\n");
if (get_student(815,vorname,nachname))
printf(" Matrikelnummer %4i: %s %s\n",815,vorname,nachname);
else
printf(" Matrikelnummer %4i ist unbekannt\n",815);

printf(">>> Fuege neuen Studenten in die Liste ein: Monica Lewinsky [0815] ...\n");
enqueue(815,"Monica","Lewinsky");

printf(">>> Loesche die Matrikelnummer 4711 ...\n");
if (dequeue(4711))
printf(" Matrikelnummer %4i geloescht\n",4711);
else
printf(" Matrikelnummer %4i war nicht erfasst\n",4711);

printf(">>> Test ob die Studentenliste leer ist ...\n");
if (is_empty())
printf(" Die Studentenliste ist leer \n");
else
printf(" Die Studentenliste ist nicht leer \n");

printf(">>> Test, ob die Matrikelnummer 6666 bereits erfasst wurde ...\n");
if (get_student(6666,vorname,nachname))
printf(" Matrikelnummer %4i: %s %s\n",6666,vorname,nachname);
else
printf(" Matrikelnummer %4i ist unbekannt\n",6666);

printf(">>> Loesche die Matrikelnummer 9998 ...\n");
if (dequeue(9998))
printf(" Matrikelnummer %4i geloescht\n",9998);
else
printf(" Matrikelnummer %4i war nicht erfasst\n",9998);

printf(">>> Loesche die Matrikelnummer 9999 ...\n");
if (dequeue(9999))
printf(" Matrikelnummer %4i geloescht\n",9999);
else
printf(" Matrikelnummer %4i war nicht erfasst\n",9999);

printf(">>> Gebe alle erfassten Studenten aus ...\n");
curr = studenten_liste;

while(curr!=NULL)
{
printf(" Matrikelnummer %4i: %s %s\n",
curr->matnum, curr->vorname,curr->nachname);
curr=curr->next_student;
}

return 0;
}
 
Also nochmal der Versuch :D

Öffne ein neues C++ Projekt
Win32 Konsolenanwendung - > leeres Projekt

füge dem Projekt eine neue Quelldatei hinzu bsp. test.cpp

kopiere den Quellcode hinein -> alles speichern ->ausführen

Code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <malloc.h>



/* Struktur des Datensatzes */
typedef struct stud_type_ {
int matnum; /* Matrikelnummer, */
char vorname[20]; // Vorname und
char nachname[20]; // Nachname sind Eintraege.

/* Die Datenbank ist eine einfach verkettete Liste. */
struct stud_type_ *next_student;
}stud_type;

/* Initialisierung der Datenbank */
stud_type *studenten_liste = NULL;

int is_empty() /* Ist die Datenbank leer? */
{
return (studenten_liste==NULL);
}

/* Einfuegen eines Elementes */
void enqueue(int matnum, char vorname[20], char nachname[20])
{
stud_type *curr, *next, *neuer_student;

neuer_student = (stud_type *)malloc(sizeof(stud_type)); /* Speicher fuer Element */
strcpy(neuer_student->vorname,vorname); /* anfordern und mit Daten */
strcpy(neuer_student->nachname,nachname); /* fuellen. */
neuer_student->matnum = matnum;

curr = studenten_liste; /* Neues Element in DB einfuegen */

if ((curr==NULL) || (curr->matnum > neuer_student->matnum))
{
neuer_student->next_student = curr; /* Sonderfall: an erster Stelle */
studenten_liste = neuer_student; /* einfuegen */
}
else
{
next = curr->next_student; /* Durchmustern der DB */
while ((next!=NULL) && (next->matnum < neuer_student->matnum))
{
curr = next;
next = next->next_student;
}
neuer_student->next_student = next; /* Neues Element nach curr und */
curr->next_student=neuer_student; /* vor next einfuegen */
}
}

/* Loeschen eines Elementes */
int dequeue(int matnum)
{
stud_type *curr,*next;

if (studenten_liste==NULL)
return 0; /* Rueckgabewert: Fehler!*/

curr=studenten_liste;
if (curr->matnum==matnum) { /* Sonderfall: erstes Element */
studenten_liste=curr->next_student; /* loeschen */
free(curr); /* Speicher freigeben */
return 1; /* Rueckgabewert: OK. */
}
next=curr->next_student; /* Durchmustern der DB */
while ((next!=NULL)&&(next->matnum<matnum))
{
curr=next;
next=next->next_student;
}

if ((next==NULL)||(next->matnum!=matnum))
return 0; /* Rueckgabewert: Fehler! */

curr->next_student=next->next_student; /* Element loeschen */
free(next); /* Speicher wieder freigeben */

return 1; /* Rueckgabewert: OK. */
}

/* Auslesen eines Elementes. */
int get_student(int matnum, char vorname[20], char nachname[20])
{
stud_type *curr;

curr=studenten_liste; /* Durchmustern der DB */
while ((curr!=NULL)&&(curr->matnum<matnum))
curr=curr->next_student;
if ((curr==NULL)||(curr->matnum!=matnum))
return 0; /* Rueckgabewert: Fehler! */
else
{
strcpy(vorname,curr->vorname);
strcpy(nachname,curr->nachname);
return 1; /* Rueckgabewert: OK. */
}
}

/* Test der Listenfunktionen. */
int main() {
char vorname[20],nachname[20];
stud_type *curr;

printf(">>> Fuege neuen Studenten in die Liste ein: Bill Clinton [6666] ...\n");
enqueue(6666,"Bill","Clinton");

printf(">>> Fuege neuen Studenten in die Liste ein: Hillary Clinton [4711] ...\n");
enqueue(4711,"Hillary","Clinton");

printf(">>> Fuege neuen Studenten in die Liste ein: Newt Gingrich [9999] ...\n");
enqueue(9999,"Newt","Gingrich");

printf(">>> Test, ob die Matrikelnummer 0815 bereits erfasst wurde ...\n");
if (get_student(815,vorname,nachname))
printf(" Matrikelnummer %4i: %s %s\n",815,vorname,nachname);
else
printf(" Matrikelnummer %4i ist unbekannt\n",815);

printf(">>> Fuege neuen Studenten in die Liste ein: Monica Lewinsky [0815] ...\n");
enqueue(815,"Monica","Lewinsky");

printf(">>> Loesche die Matrikelnummer 4711 ...\n");
if (dequeue(4711))
printf(" Matrikelnummer %4i geloescht\n",4711);
else
printf(" Matrikelnummer %4i war nicht erfasst\n",4711);

printf(">>> Test ob die Studentenliste leer ist ...\n");
if (is_empty())
printf(" Die Studentenliste ist leer \n");
else
printf(" Die Studentenliste ist nicht leer \n");

printf(">>> Test, ob die Matrikelnummer 6666 bereits erfasst wurde ...\n");
if (get_student(6666,vorname,nachname))
printf(" Matrikelnummer %4i: %s %s\n",6666,vorname,nachname);
else
printf(" Matrikelnummer %4i ist unbekannt\n",6666);

printf(">>> Loesche die Matrikelnummer 9998 ...\n");
if (dequeue(9998))
printf(" Matrikelnummer %4i geloescht\n",9998);
else
printf(" Matrikelnummer %4i war nicht erfasst\n",9998);

printf(">>> Loesche die Matrikelnummer 9999 ...\n");
if (dequeue(9999))
printf(" Matrikelnummer %4i geloescht\n",9999);
else
printf(" Matrikelnummer %4i war nicht erfasst\n",9999);

printf(">>> Gebe alle erfassten Studenten aus ...\n");
curr = studenten_liste;

while(curr!=NULL)
{
printf(" Matrikelnummer %4i: %s %s\n",
curr->matnum, curr->vorname,curr->nachname);
curr=curr->next_student;
}
system( "PAUSE");
return 0;
}
 
Zurück
Oben