gpt4 book ai didi

c - 传递 'atoi' 的参数 1 使指针来自整数而不进行强制转换......任何人都可以帮助我

转载 作者:太空宇宙 更新时间:2023-11-04 00:49:04 25 4
gpt4 key购买 nike

#include <stdio.h>
#include <stdlib.h>

int main()
{
char c;
int count = 0;
c=fgetc(file);
while (c != '\n' )
{
instruction_file[count] = atoi(c);
c = fgetc(file);
count++;
}
}

错误信息是

warning: passing argument 1 of 'atoi' makes pointer from integer without a cast
/usr/include/stdlib.h 147, expected const char* but argument of type char

最佳答案

看起来您正在尝试使用 atoi 来解析个位数。然而,由于 atoi 需要一个 C 字符串并接受一个 const char*,您不能将一个普通的 char 传递给它。您需要向它传递一个正确终止的 C 字符串:

char c[2] = {0};
c[0]=fgetc(file);
instruction_file[count] = atoi(c); // This will compile

但是,这并不是将数字解释为数值的最有效方法:您可以通过从数字中减去 0 来更快地完成同样的事情:

char c;
...
instruction_file[count] = c - '0';

关于c - 传递 'atoi' 的参数 1 使指针来自整数而不进行强制转换......任何人都可以帮助我,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26024259/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com