Zeiger !

cHillberT

Grünschnabel
int getint(int *pn)
{
int c, sign;
while (isspace (c = getch()))
;
if (!isdigit(c) && c != EOF && c != '+' && c != '-')
{
ungetch(c);
return 0;
}
sign = (c == '-') ? -1 : 1;
if (c == '+' || c == '-')
c = getch();
for (*pn = 0; isdigit(c); c = getch())
*pn = 10 * *pn + (c - '0');
*pn *= sign;
if (c != EOF)
ungetch(c);
return c;
}

Ich hab diesen Code und würde ihn gerne in ein gesamtes Programm integrieren, aber weiß noch nicht so ganz, wie ich das machen muss. Kann mir da einer helfen ?
 
Konsolenanwendung:

Code:
///////////////////////////////////// 
int getint(int *pn)
{
int c, sign;
while (isspace (c = getch()))
;
if (!isdigit(c) && c != EOF && c != '+' && c != '-')
{
ungetch(c);
return 0;
}
sign = (c == '-') ? -1 : 1;
if (c == '+' || c == '-')
c = getch();
for (*pn = 0; isdigit(c); c = getch())
*pn = 10 * *pn + (c - '0');
*pn *= sign;
if (c != EOF)
ungetch(c);
return c;
}
///////////////////////////////////// 
//Hier drunter kommt jetzt dein Code z.B. main()
int main(void)
{
  int b = 0;
  int ret = 0;
  ret = getint(b); //Funktionsaufruf
}
 
Code:
//Hier drunter kommt jetzt dein Code z.B. main()
int main(void)
{
  int b = 0;
  int ret = 0;
  ret = getint(b); //Funktionsaufruf
}

Nein! So nicht. Die Uebergabe an die Funktion ist als ZZeiger definiert also:

Code:
in  *b;
 
Da bekomm ich die Fehlermeldung: Type mismatch in parameter pn: (wanted 'int *', got int)

hmmmm...... die Ausgabe ist also nicht richtig !
 
Hab jetzt eure beiden Sachen eingebaut, aber es geht immer noch nicht mit der Ausgabe. Ich bekomme da keine Zeichenkette bzw kein Zeichen ausgegeben ! :(
 
hast du das '&' vor dem b geschrieben? Ich hatte das im ersten Beitrag vergessen

added:
nutz entweder
int b;
oder
int * b = new int;
 
Code:
int main(void)
{
  int ret = 0;
  int *b = 0;
  ret = getint(&b); //Funktionsaufruf
}

Dies hab ich nun in main() stehen !
 
genau das:
int *b =0;
ist (wahrscheinlich) falsch
versuchs so:
Code:
int main(void)
{
  int ret = 0;
  int b = 0;
  ret = getint(&b); //Funktionsaufruf
}
 
Ein Fehler ist noch übrig:
'ret' is assigned a value that is never used

Jetzt hab ich den Quellcode:

Code:
int main(void)
{
  int ret = 0;
  int b = 0;
  ret = getint(&b); //Funktionsaufruf
}
 
Zurück