Input & Output trong C là 2 yếu tố rất quan trọng trong lập trình C. Muốn trở thành một người lập trình C chuyên nghiệp thi bắt buộc các bạn phải nắm vững kỹ năng này. Bài viết này Devpro.edu.vn sẽ chia sẻ và hướng dẫn các bạn cách sử dụng Input & Output trong lập trình C giúp các bạn hiểu rõ hơn và có thêm cho mình những kiến thức bổ ích khi theo học lập trình C.
Input trong C là để truyền một số dữ liệu vào một chương trình. Một Input có thể được cung cấp dưới dạng một tệp hoặc từ dòng lệnh. Lập trình C cung cấp một bộ các hàm dựng sẵn để đọc đầu vào đã cho và nạp nó vào chương trình theo yêu cầu.
Còn Output trong C là để hiển thị một số dữ liệu trên màn hình, máy in, hoặc trong bất kỳ tập tin. Lập trình C cung cấp một tập hợp các hàm dựng sẵn để xuất dữ liệu trên màn hình máy tính cũng như lưu nó vào văn bản hoặc tệp nhị phân.
Lập trình C xử lý tất cả các thiết bị dưới dạng tệp. Vì vậy, các thiết bị như màn hình được giải quyết theo cách tương tự như các tệp và ba tệp sau đây sẽ tự động được mở khi chương trình thực thi để cung cấp quyền truy cập vào bàn phím và màn hình.
Tệp chuẩn |
File Pointer |
Thiết bị |
Đầu vào tiêu chuẩn |
stdin |
Bàn phím |
Đầu ra tiêu chuẩn |
stdout |
Màn |
Lỗi chuẩn |
stderr |
Màn hình của bạn |
Các con trỏ tập tin là phương tiện để truy cập vào tập tin cho mục đích đọc và viết. Phần này giải thích cách đọc các giá trị từ màn hình và cách in kết quả trên màn hình.
Hàm int getchar (void) đọc ký tự có sẵn kế tiếp từ màn hình và trả về nó như một số nguyên. Hàm này chỉ đọc từng ký tự một lần. Bạn có thể sử dụng phương pháp này trong vòng lặp trong trường hợp bạn muốn đọc nhiều hơn một ký tự từ màn hình.
Hàm int putchar (int c) đặt ký tự được truyền trên màn hình và trả về cùng một ký tự. Hàm này chỉ đặt từng ký tự một, bạn có thể sử dụng phương pháp này trong vòng lặp trong trường hợp bạn muốn hiển thị nhiều hơn một ký tự trên màn hình. Kiểm tra ví dụ sau:
#include
int main( ) {
int c;
printf( "Enter a value :");
c = getchar( );
printf( "\nYou entered: ");
putchar( c );
return 0;
}
Khi mã trên được biên dịch và thực hiện, nó chờ bạn nhập một số văn bản. Khi bạn nhập văn bản và nhấn enter, chương trình sẽ tiếp tục và chỉ đọc một ký tự đơn và hiển thị nó như sau:
$./a.out
Enter a value : this is test
You entered: t
Hàm char * được (char * s) đọc một dòng từ stdin vào bộ đệm được trỏ tới bởi s cho đến khi một dòng kết thúc hoặc EOF (End of File).
Hàm int đặt (const char * s) viết chuỗi 's' và 'a' theo dòng mới vào stdout .
#include
int main( ) {
char str[100];
printf( "Enter a value :");
gets( str );
printf( "\nYou entered: ");
puts( str );
return 0;
}
Khi mã trên được biên dịch và thực hiện, nó chờ bạn nhập một số văn bản. Khi bạn nhập văn bản và nhấn enter, chương trình sẽ tiếp tục và đọc dòng hoàn chỉnh cho đến khi kết thúc và hiển thị nó như sau:
$./a.out
Enter a value : this is test
You entered: this is test
Hàm int scanf (const char * format, ...) đọc Input từ stdin luồng đầu vào tiêu chuẩn và quét Input theo định dạng được cung cấp.
Các int printf (const char * format, ...) chức năng viết Output theo tiêu chuẩn output stream stdout và tạo Output theo định dạng được cung cấp.
Các định dạng có thể là một chuỗi liên tục đơn giản, nhưng bạn có thể chỉ định% s,% d,% c% f, vv, để in hoặc đọc chuỗi, số nguyên, nhân vật hoặc thả nổi tương ứng. Có nhiều tùy chọn định dạng khác có sẵn có thể được sử dụng dựa trên các yêu cầu. Bây giờ chúng ta hãy tiếp tục với một ví dụ đơn giản để hiểu các khái niệm tốt hơn:
#include
int main( ) {
char str[100];
int i;
printf( "Enter a value :");
scanf("%s %d", str, &i);
printf( "\nYou entered: %s %d ", str, i);
return 0;
}
Khi mã trên được biên dịch và thực hiện, nó chờ bạn nhập một số văn bản. Khi bạn nhập một văn bản và nhấn Enter, sau đó chương trình tiến hành và đọc đầu vào và hiển thị nó như sau:
$./a.out
Enter a value : seven 7
You entered: seven 7
Ở đây, cần lưu ý rằng scanf () hy vọng đầu vào có cùng định dạng như bạn đã cung cấp% s và% d, có nghĩa là bạn phải cung cấp các đầu vào hợp lệ như "chuỗi số nguyên". Nếu bạn cung cấp "chuỗi chuỗi" hoặc "số nguyên nguyên", thì nó sẽ được giả định là đầu vào sai. Thứ hai, trong khi đọc một chuỗi, scanf () dừng đọc ngay sau khi nó gặp một không gian, do đó, "đây là thử nghiệm" là ba chuỗi cho scanf ().
Tài liệu về lập trình C liên quan khác bạn nên đọc: