现在已经有一段时间了,我仍在尝试让某个代码正常工作。我之前问过一些关于不同命令等的问题,但现在我希望这是最后一个(将所有问题组合在一个代码中)。
我基本上想:
*扫描输入(应该是字符?)
*检查它是否是一个数字
*如果不是,返回错误
*将该字符转换为浮点数
*将值复制到另一个变量(我在这里称之为imp)
这是我想出的:
编辑代码*
#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>
main(){
int digits;
float imp=0;
char* alpha;
do{
printf("Enter input\n\n");
scanf("\n%c",alpha);
digits=isdigit(alpha);
if(digits==0){
printf("error\n\n");
}
imp=atof(alpha);
}while(digits==0);
}
问题是这段代码根本不起作用......它让我知道 atof 必须是一个 const char 并且每当我尝试改变它时,它总是会失败。我很沮丧,被迫在这里问,因为我相信我已经尝试了很多并且我一直失败,但是在我让它工作之前我不会松一口气xD所以我真的需要你们的帮助。
请告诉我为什么这段代码不起作用,我做错了什么?我仍在学习 C,非常感谢您的帮助 :)
给定 atm 的编辑错误是:
Argument no 1 of 'isdigit' must be of type 'const int', not '<ptr>char'
编辑 此代码编译得很好,但是在输入输入时会崩溃。
#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>
main(){
int digits;
float imp=0;
char* alpha=0;
do{
printf("Enter input\n\n");
scanf("\n%s",alpha);
digits=(isdigit(alpha[0]));
imp=atof(alpha);
}while(digits==0);
}