Это было давно, и я все еще пытаюсь заставить работать определенный код. Ранее я задавал некоторые вопросы о различных командах и т. Д., Но теперь я надеюсь, что это последний вопрос (объединение всех вопросов в одном коде).
Я в основном хочу:
* Сканирование ввода (должно быть символом?)
* Проверьте, если это номер
* Если нет, верните ошибку
* Преобразование этого символа в число с плавающей точкой
* Скопируйте значение в другую переменную (я назвал это 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 и очень ценю вашу помощь:)
EDIT
Ошибка с учетом атм:
Argument no 1 of 'isdigit' must be of type 'const int', not '<ptr>char'
EDIT
Этот код компилируется нормально, но вылетает при вводе.
#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);
}