20/1/15

Nhập xuất cơ bản trong C và C++

C và C++ có sự khác nhau trong nhập xuất dữ liệu lên màn hình. Trong khi C cung cấp hàm printf()scanf() dùng xuất và nhập có định dạng thì C++ cung cấp các luồng nhập, xuất là cin, cout.

Để sử dụng được printf()scanf() trong C, bạn phải khai báo thư viện stdio.h. Hai hàm này có thể in và đọc dữ liệu nhập từ màn hình theo các định dạng khác nhau được điều khiển bởi người dùng nên được gọi là các hàm nhập xuất có định dạng.

Hàm printf
Cú pháp: printf("chuỗi điều khiển", danh sách tham số);
Hàm printf() được dùng để hiển thị dữ liệu trên thiết bị xuất chuẩn - console. Danh sách tham số có thể là hằng, biến, biểu thức hay lời gọi hàm và được phân cách bởi dấu phẩy. Mỗi tham số cần có một mã định dạng tương ứng kiểu dữ liệu trong chuỗi điều khiển. Mã định dạng này còn gọi là đặc tả. Một đặc tả gồm dấu % và theo sau là các ký tự c, d, f, lf, ... tương ứng kiểu dữ liệu của tham số.

Ngoài ra trong chuỗi điều khiển còn có thể chứa các lệnh điều khiển theo sau dấu \ hoặc %. Ví dụ: \n để xuống dòng, \\ để in ký tự \, \t để in tab, %% để in dấu %, ...

Ví dụ:
int a = 1, b = 2;
printf("Kết quả: %d\n", a+b);
printf("Cách ");
printf("khác:\n");
printf("%d + %d = %d\n", a, b, a+b);

Kết quả:
Kết quả: 3
Cách khác: 
1 + 2 = 3



Trong đặc tả ta có thể điều khiển độ rộng, số chữ số thập phân
Cú pháp: %<độ rộng>.<số chữ số thập phân><ký tự đặc tả>

Ví dụ: %10.2f quy định việc in một biến thực với độ rộng 10 và 2 chữ số thập phân. Có thể thêm "-" trước độ rộng để canh lề trái, ví dụ: %-10.2f. Dấu % và ký tự đặc tả là bắt buộc phải có còn các phần khác có thể có hay không tuỳ định dạng của người dùng.

Hàm scanf
Cú pháp: scanf("chuỗi điều khiển", danh sách tham số);
Chuỗi điều khiển trong hàm scanf() tương tự như printf(). Danh sách tham số trong hàm scanf() yêu cầu một địa chỉ, vì vậy ta phải thêm toán tử & vào trước tên biến để lấy địa chỉ của biến đó. Nếu biến là một con trỏ thì mặc định đã chứa địa chỉ cần trỏ đến nên không cần toán tử &.

Ví dụ:
int a;
float b;
scanf("%d%f", &a, &b);


Với C++, các luồng nhập xuất cơ bản cin, cout nằm trong namespace std. Vì vậy, muốn sử dụng chúng ta phải gọi std::cin hoặc std::cout. Để đơn giản hoá, ta khai báo lệnh: using namespace std; để không phải gọi namespace std trước các luồng này nữa.

cin
Cú pháp: cin >> biến 1 >> biến 2 >> ... >> biến n;
Gán một giá trị nhập từ thiết bị nhập chuẩn (bàn phím) vào biến.

 Ví dụ:
int a, b;
cin >> a >> b;
hoặc
int a, b;
cin >> a;
cin >> b;

cout
Cú pháp:
cout << chuỗi định dạng << chuỗi định dạng << ... << chuỗi định dạng;
Hiểu đơn giản là xuất ra thiết bị xuất chuẩn (màn hình) chuỗi định dạng. Có thể thay thế chuỗi định dạng bằng một biến, hằng, biểu thức hay lời gọi hàm để xuất giá trị của nó. Chuỗi định dạng cũng có thể thay thế bằng endl để xuống dòng hoặc đặt \n vào chuỗi định dạng cũng có tác dụng tương tự.

 Ví dụ:
int a = 1, b = 2;
cout << "Kết quả: " << a+b << endl;
cout << "Cách ";
cout << "khác: \n";
cout << a << " + " << b << " = " << a+b ;

Kết quả:
Kết quả: 3
Cách khác: 
1 + 2 = 3

Không có nhận xét nào:

Đăng nhận xét