01/10/2018, 00:20

Kí tự " " trong c

and


and

giải thích giúp em chỗ được không ạ , sao lúc thì biến “B” => “.”, lúc thì tab có 1 cái , lúc em di chuyển ra sau vài kí tự thì hiện 2 tab

Nguyễn Xuân Phúc viết 02:24 ngày 01/10/2018

cả 2 đều là 2 tab hết đấy, nếu để ý thì từ đầu đến kí tự B đều có 16 khoảng trắng (tức 2 tab)

Nguyễn Xuân Phúc viết 02:36 ngày 01/10/2018

Ở đây nó đang dùng phương thức ghi đè overwrite chứ không phải ghi chèn (insert), có thể thấy rõ ở cái hình đầu tiên

Khoa NTA viết 02:26 ngày 01/10/2018

Mình nghĩ cái mà cần giải thích cho bạn là ký tự “\r” mới đúng. “\r” là carriage return tức là quay về đầu dòng và ghi đè lên tất cả ký tự (trong phạm vi strlen của nó). Nói cách khác hơn tí là nó quay lại đầu dòng để tiếp tục in ra các ký tự đằng sau nó. Một tab trong console tương đương 1 block 8 ký tự và tab thì nó sẽ điền cho block full. Ví dụ:

  • Chuỗi “hello\r.world” khi in ra là “.world” do ký tự “\r”.
  • Chuỗi “hello\t world” khi in ra là hello... world (biểu thị khoảng trắng được thêm vào bằng dấu chấm nha), giải thích: do chuỗi “hello” thiếu 3 ký tự (để đủ 1 block 8 ký tự) nên khi có ký tự “\t” thêm vào thì nó chỉ thêm vào 3 khoảng trắng thôi.

P/s: Góp ý cho bạn: bạn muốn học cái mới? Học từ từ thôi, bạn có thể test từng trường hợp với từng ký tự “\r”, “\t”, “\a”, “\b”, … thay vì chơi thập cẩm, nó sẽ rất khó hiểu cho người mới như bạn. Mình cũng để ý là bạn hay lập topic, học hỏi là điều rất tốt nhưng các câu hỏi đều khá là cơ bản, bạn cần đọc tài liệu lập trình nhiều hơn hay ít ra thì sẽ tìm câu trả lời trước, nếu chưa thỏa mãn thì sẽ hỏi. Tự tìm câu trả lời tuy nhàm chán và mất thời gian (tùy vào kỹ năng google nữa) nhưng bù lại bạn sẽ biết được nhiều thứ hay, mới lạ mà bạn sẽ thấy dọc đường lúc tìm kiếm.

Bài liên quan
0