myGully.com

myGully.com (https://mygully.com/index.php)
-   Programmierung (https://mygully.com/forumdisplay.php?f=67)
-   -   Probleme bei C++ Quellcode Datei (https://mygully.com/showthread.php?t=2330722)

nanochip 06.06.11 19:13

Probleme bei C++ Quellcode Datei
 
Hallo Community,

icih habe mich seit den letzten paar Stunden mit C / C++ beschäftigt.

Habe schon meine eigenen kleinen Projekte fertig gestellt wie z.B Taschenrechner & Amperemeter etc.


Wenn ich diese Anwendungen ausprobiere kommt ja dieser kleine schwarze Bildschirm.

Wenn ich dann meine Funktion ausprobiere wie z.B "Geben sie eine Zahl an"
wenn ich diese dann eintippe und enter drücke kommt in millisekunden die "If-Anwendung" und dann schließt sich das Fenster sofort.


Wie kann ich das einstellen bzw. welchen Code gibt das her das dieses Fenster weiter offen bleibt ?


Ich benutze das Programm Code::Blocks 10.05.


Da ich noch ein Anfänger sind sachen Programmiersprache bin entschuldige ich mich für die erläuterung meines Problems.


Mfg
Nanochip

urga 06.06.11 19:37

Code:

main() {
 ...
 ...
 getch ();
}


nanochip 06.06.11 20:11

Danke :)

Eine Frage habe ich noch.


Ich wollte mal aus langeweile und lernfaktor ein Quiz programmieren.

Das einfache If-Prinzip falls ihr versteht.

Da ich das aber nur gelernt habe mit "Werten" zB.

.................................................. .................................................. ..............
#include <stdio.h> int main() { int eingabe; [Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...] ("Wie heißt Barack Obama mit Nachname: "); scanf ("%d",&eingabe); if (eingabe == Barack) [Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...] ("Sie haben eins eingegeben.\n");

.................................................. .................................................. .............



Wenn ich dieses kompiliere zeigt mir mein Programm immer ein Fehler an das er "Barack" nicht erkennen kann ..

Denke mal das dies keinen Wert entspricht..


Kann ich dies auch umändern das der Quellcode das anerkennt?


Ich hoffe ihr versteht was ich meine :)


mfg
nanochip

waldfee0071 06.06.11 22:20

Code:

#include <stdio.h>

int main()
{
 int eingabe;
  printf ("Wie heißt Barack Obama mit Nachname: ");
  scanf ("%d",&eingabe);
 if (eingabe == Barack) 
  printf ("Sie haben eins eingegeben.\n");
}

mit code-tags isses schonmal übersichtlicher.

zum Problem: die variable "eingabe" ist vom datentyp integer, deswegen kann sie auch keine texte (strings) einlesen sondern nur genze zahlen.

Thelvan 06.06.11 22:37

Ich hab zwar keine Ahnung von C++, aber mir fallen spontan 2 Fehler auf:
-Eingabe ist int, int ist ein Datentyp für ganze Zahlen, was du suchst ist der Datentyp String für Zeichenketten.
-Strings immer mit Anführungszeichen. Der Compiler sieht Barack als Variable.

Timmee1616 07.06.11 05:26

Zitat:

Zitat von Thelvan (Beitrag 22361165)
Ich hab zwar keine Ahnung von C++, aber mir fallen spontan 2 Fehler auf:
-Eingabe ist int, int ist ein Datentyp für ganze Zahlen, was du suchst ist der Datentyp String für Zeichenketten.
-Strings immer mit Anführungszeichen. Der Compiler sieht Barack als Variable.

Musst also so schreiben:
PHP-Code:

#include <stdio.h> 

int main() 
{
 
int eingabe
  
printf ("Wie heißt Barack Obama mit Nachname: "); 
  
scanf ("%s",&eingabe);
 if (
eingabe == "Barack")  
  
printf ("Sie haben eins eingegeben.\n");



Thelvan 07.06.11 07:59

Abgesehen davon, dass eingabe immer noch ein integer ist, ja richtig.

nanochip 07.06.11 18:53

Danke :)

germgerm 08.06.11 08:13

Hallo!

PHP-Code:

#include <stdio.h>
#include <string.h>

int main()
{
  
char szInput[80];

  
printf ("Wie heißt Barack Obama mit Nachname:  ");
  
gets (szInput);
  
  if (
strcmp ("Barack",szInput) == 0)
    
puts ("Richtig.");
  else
    
puts ("Falsch.");

  
getch();

  return 
0;


Du könntest dein Quiz aber auch mit vier Antwort-Möglichkeiten machen.
Dann würde eine Integer-Abfrage auch reichen.

VirusS 08.06.11 08:35

Das ganze hier nochmal in c++ das oben ist ja c

#include <iostream>
#include <cstdlib>
#include <string>

using namespace std;

int main ()
{
string abfrage;

cout<<"Wie heisst Barack Obama mit Nachname: ";
cin>>abfrage;

if ((abfrage=="Barack")||(abfrage=="barack"));
cout<<"Richtig";
else
cout<<"Falsch";

system ("pause");
return 0;

}


Das system ("pause") hier kann man in c++ zum pausieren der exe benutzen muss aber dann die cstdlib einbinden.

germgerm 08.06.11 08:58

Zitat:

Zitat von VirusS (Beitrag 22365662)
Das ganze hier nochmal in c++ das oben ist ja c

Ich habe mich nur dem obigen Stil angepasst.
Und ohne einer virtuellen Ableitung ist es auch nur C mit und ohne Klassen ^^


Zitat:

Zitat von VirusS (Beitrag 22365662)
if ((abfrage=="Barack")||(abfrage=="barack"));


Den Strichpunkt noch weg.

testerws 08.06.11 09:15

Zitat:

Zitat von VirusS (Beitrag 22365662)
if ((abfrage=="Barack")||(abfrage=="barack"));

gibt es in c nicht eine methode ala "tolower" die den string halt in kleinbuchstaben umwandelt und so vergleicht, dann muss man nicht prüfen ob iwas groß oder klein geschrieben ist, somit sollte man sich redundante überprüfungen sparen

VirusS 08.06.11 09:26

Kann man so oder so machen
@germerm stimmt strichpunkt zu viel ;)

nanochip 08.06.11 20:25

Ich habe soweit alles hin bekommen.

Nur ein winziges Problem.

Wenn ich meine Anwendung kompiliere und dann über mein Programm CodeBlock laufen lasse klappt alles.

Wenn ich aber seperat in den Ordner gehe und die .exe datei starte klappt soweit auch alles gut.
Wenn ich jetzt bei dem Beispiel ( Quiz ) bei der letzten Frage bin und das Ergebniss bzw. die Antwort eintippe und diese mit Enter bestätige zeigt man in millisekunden ob es richtig oder falsch ist und dann schließt sich die anwendung.. wie bekomme ich das hin das diese anwendung noch bestehen bleibt ?


mfg
nanochip

Etikareti 08.06.11 21:54

Machste ne int Variable und am Ende machste cin>>Variable;
Oder wie oben schon erwähnt:

#include <cstdlib>

system ("pause");


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:31 Uhr.

Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.