C:如何将指针(数组元素)转换为int?

时间:2013-09-05 20:59:47

标签: c string pointers fgets

我正在尝试使用fgets代码编写一个程序,该程序将从用户获得一个数字输入,然后除以10000000.我知道字符串元素(of type 'int *')无法除以int类型。

int count;
int input[MAXLEN];

for ( count = 1; count <= 20; count++ ) {
      while (( fgets ( input[count], MAXLEN, stdin)) != 0 ) {
        if ( (input[count] / 10000000) != 20 ) {
            /* Some code dealing with this condition */
        }
      }
}

修改 编译器给了我这个错误:

program.c:10:24: error: invalid operands to binary / (have int * and int)

如果输入必须是char *类型,为什么我的编译器会说int *

我知道input[count]无法分割,因为它是一个指针。任何人都可以告诉我如何解决这个问题,或者至少如何将输入从fgets转换为int?非常感谢!

1 个答案:

答案 0 :(得分:3)

input不应该是int *,而是char *。这将返回一个C字符串,它是一系列以null结尾的字符。如果使用atoi(),则可以将该字符串的内容解释为整数。