Bài học cùng chủ đề
Báo cáo học liệu
Mua học liệu
Mua học liệu:
-
Số dư ví của bạn: 0 coin - 0 Xu
-
Nếu mua học liệu này bạn sẽ bị trừ: 0 coin\Xu
Để nhận Coin\Xu, bạn có thể:
I. Lý thuyết SVIP
Nội dung này do giáo viên tự biên soạn.
I.4. Nhập xuất dữ liệu (input/output)
I.4.1. Xuất dữ liệu ra màn hình:
Cú pháp cout<<kq1 <<kq2<<…: kqi là biến, hằng hoặc biểu thức
VD1:
cout << "First sentence.\n";
cout << "Second sentence.\n”;
cout << “Third sentence.";
hoặc viết:
cout << "First sentence.\nSecond sentence. \nThird sentence.";
kết quả là:
First sentence.
Second sentence.
Third sentence.
VD2: cout<< “Tong” <<a << “+” <<b << “= ” <<a+b;
Với a=3, b=3 thì kết quả là: Tong 3+2 = 5
VD3:
#include <iostream> #include <string> using namespace std;
int main(){ int n=3; float x=12.08; string str="Be aware ! I have a gun"; cout << n << endl; //endl= “\n” cout << x << endl; cout << str << endl; return 0; } | In kết ra màn hình là: 3
|
3 dòng lệnh:
cout << n << endl;
cout << x << endl;
cout << str << endl;
tương đương với dòng lệnh sau:
cout << n << endl<< x << endl << str << endl;
I.4.2. Nhập từ bàn phím
Cú pháp cin>>biến_1 >>biến_2 >>…
Khi nhập các giá trị khác nhau phải cách nhau 1 dấu cách hoặc dấu “enter”
Ví dụ: đoạn mã sau
int a,b,c; cin>>a>>b>>c;
| Hoặc: int a,b,c; cin>>a; cin>>b; cin>>c; … |
khi thực hiện, ta nhập dữ liệu từ bàn phím: 3 4 5<enter> hoặc nhập:
3<enter>
4<enter>
5 <enter>
Sau khi nhập xong biến a mang giá trị 3, b=4 và c=5.
Chú ý: cout, cin nằm trong thư viện iostream
I.4.3. Định dạng thông tin cần in ra màn hình
Để sử dụng các định dạng này cần khai báo file nguyên mẫu <iomanip> ở đầu chương trình bằng chỉ thị #include <iomanip>.
- endl: Tương đương với kí tự xuống dòng '\n'.
- setw(n): Bình thường các giá trị được in ra bởi lệnh cout << sẽ thẳng theo lề trái với độ rộng phụ thuộc vào độ rộng của giá trị đó. Phương thức này qui định độ rộng dành để in ra các giá trị là n cột màn hình. Nếu n lớn hơn độ dài thực của giá trị, giá trị sẽ in ra theo lề phải, để trống phần thừa (dấu cách) ở trước.
- setiosflags(ios::fixed): cố định các giá trị đã đặt cho mọi dòng in cho đến khi đặt lại giá trị mới.
- setprecision(n): Chỉ định số chữ số của phần thập phân in ra là n. Số sẽ được làm tròn trước khi in ra.
Ví dụ sau minh hoạ cách sử dụng các phương thức trên.
#include <iostream> // để sử dụng cout <<
#include <iomanip.h> // để sử dụng các định dạng
int main()
{
float sv=123.456, ta=2453.6, qa=3200.0;
cout << setiosflags(ios::fixed) << setprecision(2) ;
cout << "Sach vo" << setw(20) << sv << endl;
cout << "Thuc an" << setw(20) << ta << endl;
cout << "Quan ao lanh" << setw(15) << qa << endl;
return 0 ; // kết thúc thực hiện hàm main()
}
Chương trình này khi chạy sẽ in ra bảng sau:
Sach vo 123.46
Thuc an 2453.60
Quan ao lanh 3200.00
Hoặc:
float a=123.456, b=987.001;
cout << setiosflags(ios:: fixed) << setprecision(2);
cout << " Tong cua 2 so ";
cout <<a <<" va " << b;
cout << " la " <<a+b << endl;
in ra: Tong cua 2 so 123.46 va 987.00 la 1110.46
I.4.4. Nhập kí tự
− cin.get(c): cho phép nhập một kí tự vào biến kí tự c,
− cin.getline(str,n): cho phép nhập tối đa n-1 kí tự vào xâu str.
− getline (cin,str); đọc xâu kí tự str, str kiểu dữ liệu string.
Các hàm trên khi thực hiện sẽ lấy các kí tự còn lại trong bộ nhớ đệm (của lần nhập trước) để gán cho c hoặc s. Giả sử, trước đó có lệnh cin >> x nên sẽ để lại kí tự xuống dòng trong bộ đệm nên kí tự này sẽ làm trôi các lệnh sau đó như cin.get(c), cin.getline(s,n) (máy không dừng để nhập cho c hoặc s). Vì vậy trước khi sử dụng các phương thức cin.get(c) hoặc cin.getline(s,n) nên sử dụng phương thức cin.ignore(1) để lấy ra kí tự xuống dòng còn sót lại trong bộ đệm. Ví dụ đoạn lệnh sau cho phép nhập một số nguyên x (bằng toán tử >>) và một kí tự c (bằng phương thức cin.get(c)):
int x;
char c;
cin >> x; cin.ignore(1); //bỏ qua 1 ký tự
cin.get(c);
I.4.5. Nhập xuất với tệp văn bản (file text)
Ví dụ: Viết chương trình nhập vào 2 số a, b. Tính tổng và hiệu.
Input: file Tong.inp dòng 1 chứa 2 số nguyên 4 5.
Output: file Tong.out dòng 1 ghi Tổng a+b, dòng 2 ghi hiệu a-b.
- Khai báo thư viện fstream
#include <fstream>
| Đọc từ file | Ghi vào file |
Mở file | ifstream biến_file(“tên tệp”); | ofstream biến_file (“tên tệp”); |
| ifstream fi(“Tong.inp”); | ofstream fo(“Tong.out”); |
- đọc/ghi | biến_file”>>biến 1 >>…. | fo<<kq1 <<kq2 … |
| fi>>a>>b; | fo<<a+b<<”\n”; fo<<a-b; |
Đóng | fi.close(); | fo.close(); |
Chương trình:
#include <iostream>
#include <fstream>
using namespace std;
int main(){
ifstream fi("Tong.inp");
ofstream fo("Tong.out");
int a,b;
fi>>a>>b;
fo<<a+b<<"\n";
fo<<a-b;
fi.close();
fo.close();
return 0 ;
}
Chú ý:
- endl hoặc “\n” kí hiệu xuồng dòng.
- Đọc và bỏ qua đến hết dòng (thưc tế là đưa N kí từ vào biến str quản lý).
char *str;
fi>>a;
fi.getline(str,N);
Bạn có thể đăng câu hỏi về bài học này ở đây