Devdit
 

วิธีแก้ไข specifies type char * but the argument has type char (*)

1.5K

เขียนโค้ดภาษา C รับค่าชื่อด้วยคำสั่ง scanf เก็บไว้ในตัวแปรชนิด char array โปรแกรมสามารถทำงานได้แต่ขึ้น warning: format specifies type 'char *' but the argument has type 'char (*)[50]' [-Wformat] อยากทราบวิธีแก้ไข

#include <stdio.h>

int main() {
    char name[50];
    printf("What your name ? ");
    scanf("%s", &name);
    printf("Welcome %s", name);
    return 0;
}

 

วิธีแก้ไข

กรณีรับค่าด้วยคำสั่ง scanf และเก็บค่าไว้ในตัวแปรชนิด char array ตรงหน้าของชื่อตัวแปรไม่ต้องใส่เครื่องหมายแอมเพอร์แซนด์ (&) ให้เปลี่ยนจาก &name เป็น name ได้เลย แก้ไขโค้ดได้ดังนี้

#include <stdio.h>

int main() {
    char name[50];
    printf("What your name ? ");
    scanf("%s", name);
    printf("Welcome %s", name);
    return 0;
}
แก้ไข 2 ปีที่แล้ว
ชอบ
ลิ้งก์
แชร์
Devdit มีช่อง YouTube แล้ว
เราสร้างวิดีโอเกี่ยวกับเทคโนโลยี ทำตามง่ายๆ