與此相關的問題,我已經檢查了其他職位已經使用了atoi
函數將字符串轉換,但值始終爲0轉換字符數組ATOI失敗
這裏都存儲在hold4
值:
char hold4[4] = { "0", "." , "1", "5", "\0");
我然後嘗試轉換爲int
,我得到
int hm = atoi(hold4);
hm
打印出爲:
hm = 0
我希望hm
是0.15,因爲這是在hold4
值。我想在隨後的數學運算中使用這個值。
這裏是我的代碼:
int x = 0;
int pixel = 0;
char hold[10];
char hold4[4];
for(x=0; x < linesCount; x++)
{
fscanf(model, "%c", &hold[x]);
if(hold[x] == '\0' || hold[x] == '\r' || hold[x] == '\n')
{
hold4[0] = hold[x-4];
hold4[1] = hold[x-3];
hold4[2] = hold[x-2];
hold4[3] = hold[x-1];
hold4[4] = '\0';
// printf("new line: break\n");
}
//printf("pixel: %c\n", hold[x]);
}
int hm = atoi(hold4);
printf("\nhold4: %d\n", hm);
如何使這項工作?
你沒注意到你在宣佈僅4保存數組中把5個值? –
您的代碼應該會生成大量的編譯器警告,用於將指針轉換爲char。您嘗試使用初始化程序將'char *'存儲到您的'char'中!編譯器警告/錯誤不僅僅是爲了好玩! – Olaf