@Lisik

Аргумент типа char не совместим с параметром типа const char*. Как исправить?

Делаю проверку на ввод числа. Для этого создаю 2 массива: один char, другой double. После заполняю массив char и проверяю, является ли введенные символы числом. Если да, то конвертирую их в double. Но вот с последним выдает ошибку, описанную в названии вопроса.
double *Array(int size) {
	char* gug = new char[size];
	double* meow = new double[size];
	bool digit = true;
	for (int i = 0; i < size; i++) {
		for (bool check = false; check != true;)
		{
			cin >> gug[i];
			cout << endl;
				if (!isdigit(gug[i]) && gug[0] != '-')
				{
					cout << "You need to enter a digit!" << endl;
					digit = false;
					break;
				}
				else
				{
					digit = true;
				}

			if (digit == true)
			{
				meow[i] = strtod(gug[i], NULL);    //Вот тут ошибка
...
  • Вопрос задан
  • 140 просмотров
Решения вопроса 1
@Mercury13
Программист на «си с крестами» и не только
Если вы узнали, что символ — цифра, просто вычтите из него '0'.
meow[i] = gug[i] - '0';

if (digit == true) не рекомендую писать, надо просто if (digit).
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
fzfx
@fzfx
18,5 дм
Функция strtod конвертирует строки, а вы в неё передаёте не строку, а один единственный символ, отсюда и ошибка. Сконвертируйте сначала симовл gug[i] в строку, а уже её передавайте в функцию.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы