2011-11-17 96 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); 

或(简单)交换功能