MÔN NGÔN NGỮ LẬP TR̀NH

LỚP ĐH BÁCH KHOA KHOÁ 4 - TRG QK7 - TP. HCM - 2007
 
HomeHome  FAQFAQ  SearchSearch  RegisterRegister  MemberlistMemberlist  UsergroupsUsergroups  Log in  

Share | 
 

 Bài 1.4 - Các lênh nhâp xuât

View previous topic View next topic Go down 
AuthorMessage
Admin
Admin


Number of posts : 27
Registration date : 2007-05-11

PostSubject: Bài 1.4 - Các lênh nhâp xuât   Wed May 16, 2007 8:16 am

Bài 1.4

Các lệnh nhập xuất (Giao tiếp với console).

Console là giao diện cơ bản của máy tính. Bàn phím là thiết bị vào cơ bản c̣n màn h́nh là thiết bị ra cơ bản.

Trong thư viện iostream của C++, các thao tác vào ra cơ bản của một chương tŕnh được hỗ trợ bởi hai ḍng dữ liệu : cin để nhập dữ liệu và cout để xuất. Thêm vào đó, c̣n có cerr và clog là hai ḍng dữ liệu dùng để hiển thị các thông báo lỗi trên thiết bị ra chuẩn (thường là màn h́nh) hoặc ra một file. Thông thường cout được gán với màn h́nh c̣n cin được gán với bàn phím.

Sử dụng hai ḍng dữ liệu này bạn sẽ có thể giao tiếp với người sử dụng v́ bạn có thể hiển thị các thông báo lên màn h́nh cũng như nhận dữ liệu từ bàn phím.

Xuất dữ liệu (cout)
Ḍng cout được sử dụng với toán tử đă quá tải << (overloaded - bạn sẽ hiểu rơ hơn về thuật ngữ này trong phần lập tŕnh hướng đối tượng)

cout << "Output sentence"; // Hiển thị Output sentence lên màn h́nh
cout << 120; // Hiển thị số 120 lên màn h́nh
cout << x; // Hiển thị nội dung biến x lên màn h́nh
Toán tử << được gọi là toán tử chèn v́ nó chèn dữ liệu đi sau nó vào ḍng dữ liệu đứng trước. Trong ví dụ trên nó chèn chuỗi "Output sentence", hằng số 120 và biến x vào ḍng dữ liệu ra cout.Chú ư rằng ở ḍng đầu tiên chúng ta sử dụng dấu ngoặc kép v́ đó là một chuỗi kí tự. Khi chúng ta muốn sử dụng các hằng xâu kí tự ta phải đặt chúng trong cặp dấu ngoặc kép để chúng có thể được phân biệt với các biến. Ví dụ, hai lệnh sau đây là hoàn toàn khác nhau:

cout << "Hello"; // Hiển thị Hello lên màn h́nh
cout << Hello; // Hiển thị nội dung của biến Hello lên màn h́nh
Toán tử chèn (<<) có thể được sử dụng nhiều lần trong một câu lệnh:

cout << "Hello, " << "I am " << "a C++ sentence";
Câu lệnh trên sẽ in thông báo Hello, I am a C++ sentence lên màn h́nh. Sự tiện lợi của việc sử dụng lặp lại toán tử chèn (<<) thể hiện rơ khi chúng ta muốn hiển thị nhiều biến và hằng hơn là chỉ một biến:

cout << "Hello, I am " << age << " years old and my email address is " << email_add;
Cần phải nhấn mạnh rằng cout không nhảy xuống ḍng sau khi xuất dữ liệu, v́ vậy hai câu lệnh sau :

cout << "This is a sentence.";
cout << "This is another sentence.";

sẽ được hiển thị trên màn h́nh:

This is a sentence.This is another sentence.

Bởi vậy khi muốn xuống ḍng chúng ta phải sử dụng kí tự xuống ḍng, trong C++ là \n:

cout << "First sentence.\n ";
cout << "Second sentence.\nThird sentence.";

sẽ viết ra màn h́nh như sau:

First sentence.
Second sentence.
Third sentence.

Thêm vào đó, để xuống ḍng bạn có thể sử dụng tham số endl. Ví dụ

cout << "First sentence." << endl;
cout << "Second sentence." << endl;

sẽ in ra màn h́nh:

First sentence.
Second sentence.

Tham số endl có một tác dụng đặc biệt khi nó được dùng với các ḍng dữ liệu sử dụng bộ đệm: các bộ đệm sẽ được flushed ( chuyển toàn bộ thông tin từ bộ đệm ra ḍng dữ liệu). Tuy nhiên, theo mặc định cout không sử dụng bộ đệm.

Nhập dữ liệu (cin).
Thao tác vào chuẩn trong C++ được thực hiện bằng cách sử dụng toán tử đă quá tải >> với ḍng cin. Theo sau toán tử này là biến sẽ lưu trữ dữ liệu được đọc vào. Ví dụ:

int age;
cin >> age;

khai báo biến age có kiểu int và đợi nhập dữ liệu từ cin (bàn phím) để lưu trữ nó trong biến kiểu nguyên này.

cin chỉ bắt đầu sử lư dữ liệu nhập từ bàn phím sau khi phím Enter được gơ. V́ vậy dù bạn chỉ nhập một kí tự th́ cin vẫn sẽ kiên nhẫn chờ cho đến khi bạn gơ phím Enter.


Code:
// i/o example
#include <iostream.h>
 
int main ()
{
  int i;
  cout << "Please enter an integer value: ";
  cin >> i;
  cout << "The value you entered is " << i;
  cout << " and its double is " << i*2 << ".\n";
  return 0;
}
Please enter an integer value: 702
The value you entered is 702 and its double is 1404.


Người sử dụng chương tŕnh có thể là một trong những nguyên nhân gây ra lỗi trong một chương tŕnh đơn giản sử dụng cin (như chương tŕnh trên). Trong khi bạn muốn nhận một số nguyên th́ người sử dụng lại nhập vào tên của họ (là một xâu kí tự). Kết quả là chương tŕnh sẽ chạy sai v́ đó không phải là những ǵ mà chương tŕnh mong đợi từ người dùng. Bởi vậy khi bạn sử dụng dữ liệu nhập vào từ cin bạn phải tin chắc rằng người dùng sẽ hoàn toàn hợp tác và rằng anh ta sẽ không nhập tên của ḿnh khi chương tŕnh yêu cầu nhập số nguyên. Sau này, khi nghiên cứu việc sử dụng các xâu kí tự chúng ta sẽ xem xét các giải pháp khả thi để giải quyết các lỗi loại này.

Bạn có thể dùng cin để nhập một lúc nhiều dữ liệu từ người dùng:

cin >> a >> b;

tương đương với

cin >> a;
cin >> b;

Trong cả hai trường hợp người sử dụng phải cung cấp hai dữ liệu, một cho biến a và một cho biến b và được ngăn cách bởi một dấu trống hợp lệ: một dấu cách, dấu tab hay kí tự xuống ḍng.

Trong trường hợp kiểu không được chỉ rơ (như trong ví dụ cuối) tŕnh dịch sẽ coi nó là kiểu int.
Back to top Go down
View user profile http://lopbk04.phpbb9.com
 
Bài 1.4 - Các lênh nhâp xuât
View previous topic View next topic Back to top 
Page 1 of 1

Permissions in this forum:You cannot reply to topics in this forum
MÔN NGÔN NGỮ LẬP TR̀NH :: LƯ THUYẾT LẬP TR̀NH :: CHƯƠNG MỞ ĐẦU-
Jump to: