Конвертировать char в int в цикле for - PullRequest
0 голосов
/ 20 декабря 2011

Я пытаюсь преобразовать символ в целое число, переданное методу:

volume('10');

void volume(char* number) {
  for (int i = 0; i < atoi(number); i++) {
    // do something 10 times
  }
}

Кажется, это не работает.

1 Ответ

8 голосов
/ 20 декабря 2011

Изменение:

volume('10');

void volume(char* number) {
  for (int i = 0; i < atoi(number); i++) {
    // do something 10 times
  }
}

до:

volume("10"); // <<< note the double quotes !

void volume(const char* number) { // <<< note the const
  for (int i = 0; i < atoi(number); i++) {
    // do something 10 times
  }
}

Примечание: если вы скомпилировали с включенными предупреждениями (например, gcc -Wall ...), вышеупомянутые ошибки были бы сразу очевидны. Постарайтесь привыкнуть к этому и не игнорируйте предупреждения - они есть по уважительной причине и часто экономят много времени на отладке проблем во время выполнения, которые могли бы быть исправлены во время компиляции.

...