01/10/2018, 10:44
Chuyển từ char ra số trong c
ví dụ là có chữ c đi thì muốn nó trở lại thành số trong bảng acsii rồi in ra mình làm sao
#include <stdio.h>
#include <stdlib.h>
int main()
{
char chu;
scanf("%c
",chu);
printf("%c",chu);
return 0;
}
cái này mình viết ra mà nó cứ lỗi mong mọi người chỉ lỗi sai
Bài liên quan





[Wandbox]三へ( へ՞ਊ ՞)へ ハッハッ
#include #include int main() { char chu; scanf("%c", &chu); printf("%d",chu); return 0; }
Bạn thiếu dấu & ở hàm scanf vì ta phải truyền vào pointer của c chứ không phải giá trị của c.
Bản chất của char là các ký tự đại diện cho số nên bạn cứ coi nó là số thôi
Mình chạy thử thì chương trình có một lỗi tường minh là
error C4700: uninitialized local variable 'chu' usedtại dòng `scanf_s("%c", chu);Để mình giải thích kỹ thêm:
Lỗi này, nghĩa tường minh là do bạn sử dụng biến
chumà chưa khởi tạo (initialize). Có thể sửa bằng cách khởi tạo giá trị cho biếnchubằng cách thay vì khai báochar chu;, ta sẽ khai báo đồng thời khởi tạochar chu = 0;. Cũng có thể sửa bằng cách thay vìscanf("%c\n",chu);, ta dùng một giá trịintkhác làm biến của hàm, ví dụscanf("%c\n", 100);(Mặc dù đây không phải là cách giải quyết của bài này, nhưng bạn nên lưu tâm, nó sẽ dùng để giải quyết nhiều bài khác).Tuy nhiên, mình biết bạn muốn truyền giá trị cho biến
chubằng hàmscanf, thế nên bạn phải truyền vào một số nguyên, số nguyên đó là ô nhớ lưu giá trị của biếnchu. Ô nhớ ấy được lấy bằng toán tử&. Cách sửa lỗi logic cho bài này làscanf("%c\n", &chu);. Như vậy thì ở trên sẽ không cần khởi tạo giá trị chochu, đến hàmprintfthìchuđã được khởi tạo rồi nên không còn báo lỗi.Muốn nhập giá trị cho một biết
char, thay vìscanf(), bạn nên dùnggetchar(), cách sử dụng đơn giản, ít lỗi, lại có thể vừa khai báo vừa khởi tạo:char chu = getchar();Bản chất của
charcũng gần nhưint, muốn in ra giá trị mã của một ký tự, bạn chỉ cầnprintf("%d", chu);là được, vì khi dùng ký tự%dlà hàmprintfđã tự động ép kiểu. Tuy nhiên, nếu bạn thực sự muốn sử dụng giá trị mã thay vì chỉ in ra thì bạn nên ép kiểu rồi lưu nó lại ở một biếnintkhác, ví dụint giatri = (int)chu;Chưa test
scanf sai rồi kia, phải sửa như này
printf("Enter a character:") ; scanf("%c",&character);Cái đó là nhập số còn bài là nhập chữ in số.
lol, cảm ơn bạn, mình nhìn lộn scanf