2011-11-17 87 views
2

我收到一個錯誤,我不明白並找不到解決方案。缺少原型錯誤

的錯誤如下:

失蹤原型isANumber

代碼它指的是:

double prompt(char *promptString) { 

    printf("%s", promptString); 
    char *input = ""; 
    scanf("%s", &*input); 
    printf("%s\n", &*input); 

    int check = isANumber(input); 


if (check) { 
    return (double) *input; 
} else { 
    return 0.00; 
} 

} 

int isANumber(char *check) { 

    int result = 0; /* Current isdigit() return value */ 
    do       /* Check that each character of the...*/ 
     result = isdigit(*check++); /* ...string is a digit and move on...*/ 
    while (result && *check);  /* ...until non-digit found or at EOS */ 
    return result; /* Return result of last isdigit() call */ 

} 

庫包括:

#include <stdio.h> 
#include <limits.h> 
#include <ctype.h> 
#include <stdlib.h> 
#include <string.h> 

任何幫助將是讚賞:)

回答

1

你不能像這樣轉發參考。您需要聲明或定義isANumber之前,你可以參考它:你prompt功能之前

把這個:

int isANumber(char *check); 
+0

感謝,瞬間固定:) – Graham

0

你缺少原型

int isANumber(char *check) { 

這應該是:

int isANumber(char *); 

在頂部。

+0

參數名稱是在聲明可選。你可以寫'int isANumber(char *);'或'int isANumber(char * check)',無論你喜歡什麼。 (我更喜歡更明確的版本。) –

1

聲明原型使用前:

int isANumber(char *check); 

或(簡單)交換功能