Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

C Programm bleibt beim Starten stehen

Frage Entwicklung C und C++

Mitglied: JimK

JimK (Level 1) - Jetzt verbinden

17.10.2008, aktualisiert 19.10.2008, 4683 Aufrufe, 9 Kommentare

Hallo,

versuche C/C++ zu lernen und gehen grad ein Buch durch.
Arbeite mit dem Programm Visual C++ 2008 Express.

Nun zu meinem Problem über das ihr sicherlich schmunzeln werdet.
Habe ein kleines Beispielprogramm geschrieben doch irgendwas haut nicht hin, obwohl es genau dem Buch entspricht.
Hier ist der Quellcode:

01.
 
02.
#include <stdio.h> 
03.
#include <stdlib.h> 
04.
 
05.
void main() 
06.
07.
	int jahr; 
08.
	 
09.
 
10.
	printf("Bitte geben sie das Jahr ein: "); 
11.
	scanf("%d \n", &jahr); 
12.
 
13.
	if (jahr % 4 != 0) 
14.
15.
		printf("%d ist kein Schaltjahr! \n"); 
16.
		 
17.
18.
 
19.
	else 
20.
21.
		if (jahr % 100 != 0) 
22.
23.
		printf("%d ist ein Schaltjahr! \n"); 
24.
25.
 
26.
		else 
27.
28.
			if(jahr % 400 == 0) 
29.
30.
				printf("%d ist ein Schaltjahr!", jahr); 
31.
32.
			else 
33.
34.
				printf("%d ist kein Schaltjahr!", jahr); 
35.
36.
37.
38.
}
Der kompiliert das alles ohne Fehler anzuzeigen, aber wenn ich das Programm starte kommt es über das „Bitte geben sie das Jahr ein:“ nicht hinaus. Es bleibt einfach stehen.
Ich hoffe, dass ihr mir helfen könnt es zu verstehen.

Mit freundlichen Grüßen
JimK

Quelle: C/C++ Das umfassende Lehrbuch
Mitglied: Arano
17.10.2008 um 21:51 Uhr
Zu erst bitte einmal deinen Beitrag bearbeiten und deinen Quelltext in Code-Tags setzen, Danke !

Vielleicht liegt es an diesem Teil:
01.
if (jahr % 4 != 0) 
02.
03.
printf("%d ist kein Schaltjahr! \n"); 
04.
}
...genauer gesagt an an der "printf()"-Funktion, da fehlt die Übergabe des Jahres als Parameter.

~Arano

__Edit:__
Diesen Fehler hast noch ein zweites mal gemacht ;)
Bitte warten ..
Mitglied: JimK
17.10.2008 um 22:08 Uhr
Danke für deinen Rat Arano!
Hab die kleine Unaufmerksamkeit gleichmal abgeändert. Leider hat es nicht geholfen.
Es passiert einfach nichts nach der Jahreseingabe in der cmd und der Compiler findet auch keine Fehler.

PS:
Wenn dieser Fehler behoben ist, dann kommen gleich noch ein paar Fragen auf euch zu. ;)
Bitte warten ..
Mitglied: Arano
18.10.2008 um 01:28 Uhr
Sodale, habe es nun einfach selber mal probiert/Compiliert. Allerdings mit dem BCC32.
Das selbe Problem wie du es beschriebst kam zum Vorscheinen.
Als ich das dann allerdings im Notepad++ betrachtet habe (wegen dem Syntaxhighlight) und dabei war alles einzurücken, viel mir folgendes auf:

"int jahr;" <-- type = integer/ganzzahlen
"scanf("%d \n",&jahr);" <!-- type = character/zeichenkette

Und das ist auch der Fehler, hiermit funktionierte es dann
"scanf("%d",&jahr);"

Verstehe sowieso nicht warum du der eingegebenen Zahl noch eine Leerzeichen und einen Zeilenumbruch angefügt hast/wolltest !?

Und wegen den anderen Fragen, mal sehen... bin auch nicht besonders bewandert in dieser Sprache, eher weniger ;)

Gruß Arano
Bitte warten ..
Mitglied: JimK
18.10.2008 um 11:06 Uhr
Danke Arano!!!!
Jetzt funktionier es.

ok, jetzt zu meinem anderen Problem.
Quellcode:

01.
# include <stdio.h> 
02.
# include <stdlib.h> 
03.
 
04.
void main() 
05.
06.
int weiche1, weiche2, weiche3, weiche4; 
07.
int position; 
08.
int kugel; 
09.
 
10.
printf("Bitte geben sie die Weichenstellung ein: "); 
11.
scanf("%d %d %d %d", &weiche1, &weiche2, &weiche3, &weiche4); 
12.
fflush(stdin); 
13.
printf("Bitte geben sie die Anzahl der Kugel ein: "); 
14.
scanf("%d", &kugel); 
15.
 
16.
for (;kugel > 0; kugel = kugel - 1) 
17.
18.
 
19.
if(weiche1 == 1) 
20.
position =1; 
21.
 
22.
else 
23.
position = 2; 
24.
 
25.
weiche1 = 1 - weiche1; 
26.
 
27.
if(position == 1) 
28.
29.
if(weiche2 == 1) 
30.
position = 4; 
31.
 
32.
else 
33.
position = 3; 
34.
weiche2 = 1 - weiche2; 
35.
36.
 
37.
else 
38.
39.
if(weiche3 == 1) 
40.
position =3; 
41.
 
42.
else 
43.
position =5; 
44.
weiche3 = 1 - weiche3; 
45.
46.
 
47.
if(position == 3) 
48.
49.
if(weiche4 == 1) 
50.
position = 4; 
51.
 
52.
else 
53.
 
54.
position = 5; 
55.
weiche4 = 1 - weiche4; 
56.
57.
 
58.
printf("Auslauf: %d ,", position); 
59.
printf("neue Weichenstellung %d %d %d %d\n",  
60.
	   &weiche1, &weiche2, &weiche3, &weiche4); 
61.
62.
}
Hier geht es darum, dass eine Kugel 3 Weichen passieren muss. Sobalt eine Kugel durchläuft verstellt sie die weichen auf 0 oder 1 und fällt bei 4 oder 5 wieder heraus.

Alles schön und gut. Mein Programm errechnet richtig die Ausgänge, aber bei den weichen Stellung macht es immer Fehler.
Statt 0 oder 1 zu schreiben entstehen so wirre Zahlen wie 1245024 und ich weiß einfach nicht, wie das Programm auf diese Zahl kommt oder wo es sich diese Faktoren herholt. Alles total verrückt!!! ;)
Bitte warten ..
Mitglied: Arano
18.10.2008 um 14:27 Uhr
SO, also ich habe die Lösung !
Aber bitte, setze deinen Quelltext in Code-Tags.
Bitte warten ..
Mitglied: JimK
18.10.2008 um 16:05 Uhr
Einen wunderschönen!!!

Danke erstmal für deine Hilfe Arano. Ich weiß jetzt was die ganzen kleinen Probleme verursacht. Das Buch beinhalte C und C++ und ich Compiliere es mit Visual C++ 2008. Hab das ganze dann mal in C++ umgewandelt und man siehe da, es funktioniert.

Danke nochmal.

mfg
JimK
Bitte warten ..
Mitglied: Arano
18.10.2008 um 16:15 Uhr
Ja klar, kein Problem !
Aber du hättest deine Beiträge trotzdem noch mal bearbeiten könne, dann ist das einfach lesbarer und vor allem kann man es dann einfacher kopieren !

Hm... hätte nicht gedacht, dass das auch so lösbar ist !
Meiner Meinung nach lag das Problem an der Stelle der Ausgabe:
"printf("neue Weichenstellung %d %d %d %d\n", &weiche1, &weiche2, &weiche3, &weiche4);"
Durch das Und-Zeichen übergibst du die Adresse des Speicherbereiches in dem der Wert der Variable gespeichert ist.
Nach entfernen der Und-Zeichen hat es bei mit sofort funktioniert weil anstelle der Speicheradresse nun der Wert ausgegeben wird.

~Arano

__Edit:__
So wie ich das gelesene habe, ist C++ die Weiterentwicklung von C. Und wenn man es lernen möchte solle man auch mit C anfangen und später um C++ ergänzen.

Und so wie ich das jetzt einschätze hast du hier aber ein C-Programm, weswegen du es auch als solches Compilieren solltest. Das ich mich hier irre ist nicht ausgeschlossen da ich selber ja auch noch Anfänger bin ;)
Bitte warten ..
Mitglied: JimK
18.10.2008 um 18:14 Uhr
Hi Arano!

Hab ich leider auch feststellen müssen, dass das Buch erstmal eine kleine Einführung in C macht. Hoffe das ändert sich noch, denn bis jetzt kann ich das noch alles in C++ umschreiben, weil so langsam die Erinnerungen an die Programmierstunden in der Schule zurück kommen. Leider fand ich das damals nicht so interessant wie heut, aber der Lehrer war auch nicht gut.

Wie hast du eigentlich damit angefangen? Vielleicht kannst du mir ja ein paar Tipps geben!?

mfg JimK
Bitte warten ..
Mitglied: Arano
19.10.2008 um 02:59 Uhr
Nabend

Wie hast du eigentlich damit angefangen? Vielleicht kannst du mir ja ein paar Tipps geben!?
Naja, eigentlich arbeite ich mit PHP also der Webprogrammierun - von HTML, CSS und Javascript über Perl zu PHP.
Zu C++ bin ich gekommen weil ich ein kleines Programm brauchte mit dem ich eine LED am Druckerkabel (LPT1) ein- und ausschalten kann (zur Emailbenachrichtigung (der Rest läuft über ein PHP-Script ^^)).
Nach etwas suchen habe ich dann diese Seite gefunden und einfach angefangen: http://ladedu.com
Muss aber ehrlich sagen das ich mir das leichter vorgestellt hatte da ich ja schon Erfahrung in PHP habe, vor allem die Variablentypen (int, char, ...) machens mir schwer, das geht in PHP fast automatisch.

Einen schönen Sonntag noch
Arano
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(3)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Windows 7
(Netzwerk)Drucker druckt nur eine Seite und bleibt dann stehen (5)

Frage von harald.schmidt zum Thema Windows 7 ...

Windows 10
gelöst Windows 10-Upgrade bleibt bei 99 Prozent stehen (3)

Frage von achklein zum Thema Windows 10 ...

Sicherheitsgrundlagen
Programm ohne UAC und Administratorrechte starten (3)

Anleitung von agowa338 zum Thema Sicherheitsgrundlagen ...

Windows Server
gelöst Windows Server 2012 bleibt beim Bootvorgang stehen (17)

Frage von Chrischer zum Thema Windows Server ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...