Chào mừng quý vị đến với http://www.supersoi.com.

Quý vị chưa đăng nhập hoặc chưa đăng ký làm thành viên, vì vậy chưa thể tải được các tư liệu của Thư viện về máy tính của mình.
Nếu đã đăng ký rồi, quý vị có thể đăng nhập ở ngay ô bên phải.

Vào ra

Wait
  • Begin_button
  • Prev_button
  • Play_button
  • Stop_button
  • Next_button
  • End_button
  • 0 / 0
  • Loading_status
Nhấn vào đây để tải về
Báo tài liệu có sai sót
Nhắn tin cho tác giả
Nguồn: Internet
Người gửi: Nguyễn Thanh Dương (trang riêng)
Ngày gửi: 16h:51' 26-05-2008
Dung lượng: 120.0 KB
Số lượt tải: 18
Số lượt thích: 0 người
Bài giảng 3: Vào ra
Nội dung
Hàm nhập scanf, gets
Hàm xuất printf
Dòng vào stdin
Các hàm vào ra trên bàn phím, màn hình
Hàm printf
Cú pháp
int printf(const char* dk, [danh sách các đối]);
Trả về: -1 nếu lỗi hoặc số ký tự được in ra nếu thành công
Chuỗi điều khiển gồm ba loại kt
Các ký tự điều khiển: , , , v.v.
Các đặc tả chuyển dạng và tạo khuôn
Các ký tự hiển thị (khác hai loại trên)
Đặc tả chuyển dạng và tạo khuôn
Cú pháp
%[-][fw][.pp]ky_tu_chuyen_dang
Nếu có dấu trừ thì căn lề trái
Nếu fw bắt đầu bằng 0 và không có dấu trừ thì phần thừa được điền 0
fw là tổng độ rộng dành cho hiển thị.
pp là độ chính xác sau dấu phảy của kiểu thực hoặc số ký tự của xâu được hiển thị

Ví dụ
Ký tự chuyển dạng
Danh sách các đối
Được phân cách bởi dấu phảy
Mỗi đối cần tương ứng với ký tự chuyển dạng
Đối có thể là hằng, biến, lời gọi hàm, biểu thức
Các ví dụ xuất ra cơ bản
printf(“ABC”); ABC (con trỏ sau C)
printf(“%d ”,5); 5 (con trỏ ở đầu dòng kế tiếp)
printf(“%c %c % c”,’A’,’B’,’C’); A B C
printf(“From sea ”); From sea to shining C
printf(“to shining “);
printf (“C”);
printf(“From sea ”); From sea
printf(“to shining “); to shining
printf (“C”); C
leg1=200.3; leg2=357.4;
printf(“It was %f miles” It was 557.700012 miles
,leg1+leg2);
num1=10; num2=33;
printf(“%d %d ”,num1,num2); 10 33
big=11e+23;
printf(“%e ”,big); 1.100000e+24
printf(“%c ”,’?’); ?
printf(“%d ”,’?’); 63
printf(“07 That was a beep ”); bạn tự thử

Hàm scanf
Cú pháp
int scanf( const char* dk, [,danh_sach_cac_doi] );
Danh_sach_cac_doi: Các địa chỉ vùng nhớ cần nhập giá trị
Khuôn dạng xâu dk
%[*][d..d]ky_tu_chuyen_dang
Đặc tả chứa dấu * không có đối tương ứng
D..d là dẫy chữ số xác định độ dài cực đại của trường vào
Dòng vào và trường vào
Dòng vào là một dãy ký tự liên tiếp nhau trên thiết bị vào
Ví dụ: sfsdf/n334/t d/n
Các giá trị trên dòng vào được gọi là trường vào
Ý nghĩa tham số dd..d
Nếu không có d..d hoặc tham số này lớn hơn độ dài trường vào thì toàn bộ trường vào được đọc
Ngược lại, chỉ phần đầu của trường được đọc, dich và gán cho các tham số tương ứng. Phần còn lại của trường sẽ được xem xét phụ thuộc các đặc tả kế tiếp.
Xem vd trang 80
Ký tự chuyển dạng
Ký tự chuyển dạng xác định cách thức dò đọc các ký tự trên dòng vào cũng như phương pháp chuyển đổi thông tin rồi gán cho tham biến.
Bảng ký tự chuyển dạng
Ví dụ nhập vào cơ bản
#include
main() {
float x,y;
printf("Hay nhap cac toa do ");
scanf("%f%f",&x,&y);
printf(“Vi tri la (%f,%f) ",x,y);
}


Hay nhap cac toa do
5.46 13.8
Vi tri la (5.460000,13.800000)


Đưa ra máy in
Cú pháp
int fprintf( stdprn, const char* dk, [,danh_sach_cac_doi] );
+ Tham số stdprn xác định thiết bị ra là máy in
+ Các tham số còn lại giống như mô tả ở hàm printf

Dòng vào stdin
stdin là dòng vào chuẩn (bàn phím). Các hàm scanf, gets và getchar đều nhận dữ liệu vào từ stdin.
Chú ý:
Nếu trên stdin có đủ dữ liệu thì các hàm sẽ nhận một phần dữ liệu mà chúng cần. Phần còn lại vẫn ở trên stdin.
Trái lại, máy sẽ tạm dừng để người dùng đưa thêm dữ liệu từ bàn phím lên stdin (cho tới khi nhấn Enter).

Hàm fflush
Công dụng: gọi fflush(stdin) để xóa sạch dòng vào stdin.
Tránh sự ảnh hưởng ngoài ý muốn của các thao tác nhập dữ liệu trước đó.
Hàm gets
Dạng hàm:
char* gets( char* s );
Công dụng: Nhận dãy ký tự từ stdin cho tới khi gặp ‘ ’. Ký tự ‘ ’ bị loại khỏi stdin nhưng không được đặt vào chuỗi s.
Tham số: s là con trỏ kiểu char trỏ tới vùng nhớ sẽ chứa dãy ký tự được nhập vào.
Trả về: địa chỉ chuỗi nhận được


Hàm getchar
Sinh viên tự đọc (trong sách hoặc trong Help của Turbo C)
Các hàm xuất ký tự puts và putchar
Các hàm này (và printf) đều có tác dụng đưa dữ liệu lên dòng ra chuẩn stdout (màn hình)

Sinh viên tự đọc về mô tả của các hàm này
Các hàm vào ra trên bàn phím, màn hình
Hàm getch()
Dạng hàm: int getch( void )
Công dụng: nhận một ký tự trong stdin và không hiển thị lên màn hình.
Trả về: ký tự nhận được
Sinh viên tự đọc các hàm sau:
getche
putch
kbhit
clrscr
gotoxy
Câu hỏi và bài tập
Tại sao khi nhập xâu ký tự người ta thường sử dụng gets thay vì scanf?
Tại sao trước khi nhập xâu ký tự nên sử dụng fflush(stdin)?
Đoạn mã sau sai ở đâu? Chương trình biên dịch có phát hiện sai khi dịch không?
int a;
long b;
float x;
double y;
printf( "Nhap a, b, x, y: " );
ccanf( "%ld%d%lf%f", &a, &b, &x, &y );



 
Gửi ý kiến