Tiêu chuẩn c ++

Trong bất kỳ ngôn ngữ lập trình nào, công việc tương tác trực tiếp với máy tính là rất quan trọng và cần thiết. Một chương trình được viết ra cần có khả năng nhận dữ liệu từ người dùng và hiển thị kết quả thu được sau khi tính toán. Việc đó thành công trong việc nhập/xuất dữ liệu là điều không thể thiếu đối với mỗi lập trình viên. Bài viết này sẽ giúp các bạn hiểu rõ hơn về thao tác nhập/xuất dữ liệu thông qua phương tiện nhập xuất chuẩn

tổng quan

Trong C hay bất kỳ ngôn ngữ lập trình nào khác, việc nhập, xử lý và xuất dữ liệu có thể được thực hiện theo hai cách

  • Thông qua phương tiện nhập/xuất chuẩn (Standard Input/Output)
  • File through file (File)

Bài viết này sẽ đề cập đến Standard Input/Output

Đầu ra thư viện chuẩn trong C là , do đó các lập trình viên cần khai báo thư viện này trước khi thực hiện việc nhập dữ liệu xuất bằng chỉ thị #include< . .

cung cấp cho chúng ta hai hàm nhập và xuất dữ liệu có định dạng

  • printf() . Hàm xuất dữ liệu ra màn hình (Thiết bị đầu ra tiêu chuẩn).
  • scanf() . Hàm xuất dữ liệu ra màn hình (Thiết bị đầu ra tiêu chuẩn).

Tôi. Hàm printf

  1. cú pháp
    printf (“định dạng chuổi”[, đối số 1, đối số 2,…]);

    – inf. tên hàm, phải viết bằng chữ thường. /
    – đối tượng 1,…. is các mục dữ liệu cần thiết trong màn hình. Các đối tượng này có thể là biến, hằng hoặc biểu thức phải được định trước khi in ra
    – string format. được đặt trong cặp nháy kép (” “)

    Định dạng mã        %c. Ký tự đơn
    %S. chuỗi
    %d. Number of the compiles has a mark
    %f. Số dấu chấm động (ký hiệu thập phân)
    %e. Số dấu chấm động (ký hiệu có số phụ)
    %g. Số chấm động (%f hay %g)
    %x. Insignal number of integer
    %u. Số nguyên hex không dấu
    %o. Số nguyên bát phân không dấu Các ký tự điều khiển và ký tự đặc biệt       \n. Jumping line next next to the first column
    \t. Tab canh cột ngang
    \ r. Move to the start row, not down row
    \một. bip language
    \\. Trong dấu \
    \”. In mark ”
    \’. In the sign ‘
    %%. In mark %

    II. hàm scanf
    cú pháp

    scanf (“định dạng chuổi”[, đối tượng 1, đối tượng 2,…]);

    – quét. tên hàm, phải viết bằng chữ thường
    – frame format. được đặt trong cặp nháy kép (” “) là định dạng dữ liệu hình ảnh được nhập vào
    – đối tượng 1,…. là danh sách các đối tượng cách nhau bởi dấu phẩy, mỗi đối tượng sẽ tiếp nhận giá trị nhập vào

III. Minh họa chương trình
1    /* Chuong trinh nhap vao 2 so a, b vao ra tong*/
2    #bao gồm
3    trống chính(void)
4 {
5         int a, b;
6         printf(“Nhap vao so a. “);
7         scanf(“%d”, &a);
8         printf(“Nhap vao so b. “);
9         scanf(“%d”, &b);
10       printf(“Tong cua 2 so %d va %d la %d. \n”, a, b, a+b);
11       printf(“Tong cua 2 so %5d va %3d la %1d. \n”, a, b, a+b);
12       printf(“Tong cua 2 so %-5d va %-3d la %-1d. \n”, a, b, a+b);
13       printf(“Tong cua 2 so %02d va %03d la %04d. \n”, a, b, a+b);
14    }

► Kết quả trong màn hình

Nhập vào so a. 4
Nhập vào số b. 14
Tong cua 2 so 4 va 14 la 18
Tong cua 2 so      4 va    14 la 18
Tong cua 2 so 4      va 14    la 18
Tong cua 2 so 04 va 014 la 0018
_

Dòng thứ 2. bao gồm phát biểu tượng xử lý #include. Bởi vì trong chương trình này, ta sử dụng hàm thư viện của C là printf, do đó bạn cần phải khai báo hàm thư viện này để báo cho biên dịch C biết. Nếu không khai báo chương trình sẽ báo lỗi
Dòng 7 và 9

Dòng 10

Dòng 11.  

Field width will pull the results to must

Dòng 12. Dấu phụ phía trước chiều rộng trường sẽ kéo kết quả sang trái

Dòng 13. printf(“Tong cua 2 so %02d va %03d la %04d. \n”, a, b, a+b);
1             2         3
1. %02d. thêm 1 số 0 trước -> đủ 2 ký tự
2. %03d. thêm 1 số 0 trước -> đủ 3 kí tự
3. %04d. thêm 2 số 0 trước -> đủ 4 kí tự

Một số vấn đề thường gặp

1. Không truyền tham chiếu đến hàm scanf

Đây là lỗi mà các bạn thường gặp nhất. Với những dự án nhỏ thì lỗi này có thể phát hiện dễ dàng. Tuy nhiên, khi làm việc với những dự án lớn, việc phát hiện và giải quyết lỗi này cực kỳ khó khăn, vì đây không phải là lỗi trong quá trình Build nên ta không xác định được vị trí dòng mã bị lỗi. Do đó lỗi này là đặc biệt nghiêm trọng và cần được giải quyết trong quá trình học tập

Cách giải quyết. thêm toán tử & vào trước tên biến (kiểu dữ liệu nguyên thủy)

2. Trôi dòng lệnh khi xử lý chuỗi

Lỗi này cũng khá phổ biến và ít gây hoang mang cho các bạn

Trong C, line (stream) into standard is stdin. Các hàm như scanf , get , getchar, … đều nhận dữ liệu từ stdin. Khi trên stdin không còn dữ liệu, các hàm nhập dữ liệu sẽ yêu cầu người dùng nhập vào từ bàn phím. Các hàm trên chỉ nhận đủ dữ liệu mà chúng yêu cầu (trong trường hợp này, scanf chỉ nhận chuỗi không có khoảng trắng), do đó một phần dữ liệu còn sót lại trên stdin, có thể là ký tự ‘\n’ hoặc phần dữ liệu sau khoảng trắng. Điều này ảnh hưởng đến các hàm nhập dữ liệu phía sau.

Ta có thể giải quyết bằng cách làm trống bộ đệm stdin trước mỗi hàm nhập để đảm bảo độ chính xác của chương trình. Command as after