Vì sao đoạn code sử dụng hàm atof cho kết quả không như mong muốn?

Mình đang thử nghiệm hàm atof() trong C bằng đoạn code sau:

#include <stdio.h>
#include <string.h>

int main()
{
    char buffer[] = "184";
    double d;
    d = atof(buffer);
    printf("Buffer is %s. Double is %lf\n", buffer, d);
    return 0;
}

thì cả 3 compiler gcc, clang và vc đều cho ra kết quả ko như mong muốn (kết quả của biến double d luôn là 0.000), mn có thể giải thích cho mình vì sao lại như thế ko ạ?
http://rextester.com/KSD34244
Mình xin cảm ơn trước.

thiếu

#include <stdlib.h>
1 Like

Cho e hỏi vì sao phải cần thư viện stdlib ạ? (hàm nào cần thư viện đó?)
Mà đó phải hàm chuẩn ko anh nhỉ? (như trên Linux có chạy đc ko ấy?)

vì hàm atof được định nghĩa trong thư viện stdlib.h, muốn dùng thì phải import

2 Likes

À, mình quên mất, trong lúc đọc documentation của cplusplus ko để ý cái stdlib ^^

Topic hỏi lỗi cơ bản (thiếu thư viện)

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?