在for循环中将char转换为int

fuz*_*uzz 0 c++ int for-loop numbers char

我试图将char转换为传递给方法的int:

volume('10');

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

这似乎不起作用.

Pau*_*l R 8

更改:

volume('10');

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

至:

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
  }
}
Run Code Online (Sandbox Code Playgroud)

注意:如果您编译时启用了警告(例如gcc -Wall ...),那么上述错误就会立即显现出来.尝试养成这样做的习惯,不要忽略警告 - 它们存在的原因很充分,并且通常可以节省大量时间在运行时调试可能在编译时修复的问题.