Was ist der Fehler im Programm
-
Hallo,
ich habe ein Programm geschrieben, dass eine zufällige Zahl zwischen 1 und 49 ausgibt:
/* Datei: Entschlüsselung.c */
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <time.h>int a;
int b;
int Antwort2;int main (int argc, char *argv[])
{
int Antwort= MessageBox(NULL,"Wollen sie eine Zufallszahl fuers Lotto? ","Lottogenerator:", MB_ICONQUESTION |MB_YESNOCANCEL);
if(IDYES==Antwort)
{
int Antwort= MessageBox(NULL,"Die Zahl wird generiert","Lottogenerator:", MB_ICONINFORMATION |MB_OK);
srand(time(0));
b = 1+(rand() % (50-1));
int Antwort2= MessageBox(NULL,"Die Zahl lautet: %d",b , "Lottogenerator:", MB_ICONINFORMATION |MB_OK);
}
if(IDNO==Antwort)
{
int Antwort= MessageBox(NULL,"Der Vorgang wird nun abgebrochen","Lottogenerator:", MB_ICONSTOP |MB_OK);
return 0;
}
if(IDCANCEL==Antwort)
{
return 0;
}while (1);
}
In der fetten Zeile ist ein Fehler. Eigentlich soll in dieser Zeile die Zufallszahl, die in der int Variable b gespeichert ist, ausgegeben werden.
Mein Compiler gibt folgende Fehlermeldung aus: invalid conversion from `int' to `const CHAR*'Kann mir jemand helfen den Fehler zu beseitigen?
Vielen Dank Macl
-
^^MessageBox hat keine variable argumentenliste. musste erstmal den string im speicher (mit sprintf z.b. erzeugen) und dann einen zeiger darauf an MsgBox übergeben.
-
lol ich finde dass wäre ne schöne neue Methode Parameter zu übergeben:D
-
DAnke für deine Antwort, aber ich fang gerade erst an in C zu programmieren
.
Ich kann leider mit den ganzen Begriffen nix anfangen.
Könntet ihr die Zeile berichtigen.DAnke
Macl
-
/* int MessageBox( HWND hWnd, LPCTSTR lpText, LPCTSTR lpCaption, UINT uType ); */ char buffer[256];//*wirdschonreichen* sprintf(buffer,"Die Zahl lautet: %d",b); int Antwort2= MessageBox(NULL,buffer,"Lottogenerator:", MB_ICONINFORMATION |MB_OK);
so in der richtung
-
klg71 schrieb:
lol ich finde dass wäre ne schöne neue Methode Parameter zu übergeben
kannst ja 'ne funktion basteln, mit 'vsprintf', die dann die MsgBox anzeigt.
-
Echt super nooblolo!!!
funktioniertDanke
-
noobLolo schrieb:
[cpp]
char buffer[256];//*wirdschonreichen*^^reicht locker. *fg*
-
;fricky schrieb:
noobLolo schrieb:
[cpp]
char buffer[256];//*wirdschonreichen*^^reicht locker. *fg*
Ha! Stimmt. Wo ist nwp2, wenn's einmal sicher wird schon reichen?
-
ja ich gebe ja zu es war ein bischen zu viel evtl. hätte man es auch so machen können
#include <limits.h>; #define TO_STR(x) #x #define TO_NUM(x) TO_STR(x) #define GET_INT_MAX_AS_STRING TO_NUM(INT_MAX) char buffer[sizeof("Die Zahl lautet: ")+sizeof(GET_INT_MAX_AS_STRING)];
-
noobLolo schrieb:
ja ich gebe ja zu es war ein bischen zu viel
Ja.
Mammutlottozahlen oda watt.
Ich will ja nicht kleinlich sein :D, aber wo ist der Platz für den Terminator?
-
ich dachte sizeof("")==1 also ist der bei sizeof im gegensatz zu strlen schon dabei, also erster string liefert den terminator 2.string braucht noch das minus also brauchen wir keine -1 und dann wars das:)
-
Ok, supi, war meine Dusseligkeit
-
die andere Variante war für mich logischer
-
das macht sie auch nicht besser
wie schon richtig bemerkt wurde, wird ne ganze menge speicher verschwendet...