Mình đi vào vấn đề luôn, khi mình dùng gets_s() đọc một chuỗi có dấu \, sẽ tự động chuyển thành \\.
VD: 'D:\Test' - > 'D:\\Test'
Mong mọi người giải đáp vì sao và hướng sửa ạ!
Hàm gets_s() khi gặp dấu \ tự động chuyển thành \\
Vì ký tự \ đánh dấu một escape sequence trong chuỗi. Ví dụ: \n,\t
Vì thế nên nếu lấy y nguyên dữ liệu nhập như "D:\new" thì vô tình khi xuất ra sẽ bị hiểu là "D:" => xuống dòng => ew".
Để tránh việc này ta (trong trường hợp này thì là gets_s) phải thêm một dấu \ nữa là thành \\ (còn gọi là escape the escape sequence). Lúc này nội dung của chuỗi sẽ không còn bị hiểu nhầm như trước nữa.
2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?