Input & Output trong C
Input & Output trong C là hai thành phần quan trọng mà bạn cần biết khi lập trình. Dưới đây là cách dùng và ví dụ minh họa cho input và output trong C.
Khi chúng ta nói về Input nghĩa là chúng ta đang nói về dữ liệu đầu vào cho chương trình. Nó có thể được cung cấp từ dòng lệnh hoặc từ một file nào đó. Ngôn ngữ chương trình C cung cấp một tập hợp các hàm có sẵn để đọc các dữ liệu đầu vào đã nhập và cung cấp nó cho các chương trình theo yêu cầu.
Khi chúng ta nói về Output nghĩa là chúng ta đang nói về kết quả hiển thị trên màn hình, máy in hoặc bất kỳ file nào. Ngôn ngữ C cung cấp một tập hợp các hàm để xuất dữ liệu kết quả trên màn hình máy tính cũng như có thể lưu dữ liệu đó trong các file văn bản hoặc nhị phân.
Các File chuẩn trong C
Ngôn ngữ C đối xử tất cả các thiết bị như là các file. Vì thế các thiết bị như màn hình hiển thị được định vị theo cùng một cách như các file và theo đó có 3 file được tự động mở khi một chương trình thực hiện để cung cấp sự truy cập tới bàn phím và màn hình.
File chuẩn | Con trỏ tới File | Thiết bị |
---|---|---|
Đầu vào chuẩn Standard input | stdin | Bàn phím |
Đầu ra chuẩn Standard output | stdout | Màn hình |
Lỗi chuẩn Standard error | stderr | Màn hình của bạn |
Con trỏ file có nghĩa là truy cập file đó cho mục đích đọc và ghi. Khu vực này sẽ giải thích cho bạn cách đọc giá trị từ màn hình và cách để in kết quả trên màn hình.
Hàm getchar() & putchar() trong C
Hàm int getchar(void) đọc ký tự có sẵn tiếp theo từ màn hình và trả về một số integer. Hàm này chỉ đọc một ký tự đơn tại một thời điểm. Bạn có thể sử dụng phương thức 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 vào lên màn hình và trả về chính ký tự đó. Hàm này chỉ đặt một ký tự đơn một thời điểm. Bạn có thể sử dụng phương thức 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 <stdio.h>
int main( )
{
int c;
printf( "Nhap mot gia tri: ");
c = getchar( );
printf( "\nGia tri ban da nhap la: ");
putchar( c );
printf("\n===========================\n");
printf("QTM chuc cac ban hoc tot! \n");
return 0;
}
Khi đoạn code trên được biên dịch và được thực thi, nó đợi cho bạn nhập văn bản và nhấn ENTER thì chương trình xử lý và chỉ đọc một ký tự đơn rồi sau và xem kết quả:
Hàm gets() & puts() trong C
Hàm char *gets(char *s) đọc một dòng từ stdin trong bộ đệm được trỏ tới bởi s tới khi hoặc dòng lệnh mới kết thúc hoặc EOF.
Hàm int puts(const char *s) ghi chuỗi s và một dòng mới tới stdout.
#include <stdio.h>
int main( )
{
char chuoi[100];
printf( "Nhap mot gia tri: ");
gets( chuoi );
printf( "\nGia tri ban da nhap la: ");
puts( chuoi );
printf("\n===========================\n");
printf("QTM chuc cac ban hoc tot! \n");
return 0;
}
Khi code trên được biên dịch và thực thi, nó đợi cho bạn nhập văn bản và nhấn ENTER, sau đó chương trình xử lý và đọc cả dòng và xem kết quả:
Hàm scanf() và printf() trong C
Hàm int scanf(const char *format,...) đọc đầu vào từ đầu vào tiêu chuẩn stdin và quét đầu vào đó theo format đã được cung cấp..
Hàm int printf(const char *format,...) ghi kết quả đầu ra tới đầu ra tiêu chuẩn stdout và xử lý đầu ra theo format đã cung cấp.
format có thể là chuỗi đơn giản, nhưng bạn có thể xác định %s, %d, %c, %f, … để in hoặc đọc chuỗi, số nguyên, ký tự hoặc số thực tương ứng. Có nhiều tùy chọn có sẵn mà có thể được sử dụng theo yêu cầu. Để biết thêm chi tiết về các hàm này, bạn có thể truy cập vào trang trợ giúp. Bây giờ chúng ta xử lý một ví dụ đơn giản sau:
#include <stdio.h>
int main( )
{
char chuoi[100];
int i;
printf( "Nhap mot gia tri: ");
scanf("%s %d", chuoi, &i);
printf( "\nGia tri ban da nhap la: %s %d ", chuoi, i);
printf("\n===========================\n");
printf("QTM chuc cac ban hoc tot! \n");
return 0;
}
Khi đoạn code trên được biên dịch và thực thi, nó đợi cho bạn nhập văn bản và nhấn ENTER, sau đó chương trình xử lý và đọc đầu vào và xem kết quả:
Bạn nên ghi nhớ rằng scanf()
mong đợi rằng đầu vào bạn nhập trong cùng một định dạng như bạn đã cung cấp: %s và %d, nghĩa là bạn phải cung cấp đầu vào hợp lệ như "string integer", nếu bạn cung cấp "string string" hoặc "integer integer" thì sau đó nó sẽ cho là đầu vào bạn nhập vào là sai. Điều thứ hai, trong khi đọc một chuỗi, hàm scanf() dừng đọc ngay sau khi nó gặp một khoảng trống, vì thế "this is test" là 3 chuỗi cho hàm scanf().
Nhiều input
Hàm scanf()
cho phép nhiều input (một số nguyên và một kí tự trong ví dụ sau):
// Create an int and a char variable
int myNum;
char myChar;
// Ask the user to type a number AND a character
printf("Type a number AND a character and press enter: \n");
// Get and save the number AND character the user types
scanf("%d %c", &myNum, &myChar);
// Print the number
printf("Your number is: %d\n", myNum);
// Print the character
printf("Your character is: %c\n", myChar);
Lấy input chuỗi
Bạn cũng có thể có một chuỗi được nhập bởi người dùng:
Đầu ra là tên của người dùng:
// Create a string
char firstName[30];
// Ask the user to input some text
printf("Enter your first name: \n");
// Get and save the text
scanf("%s", firstName);
// Output the text
printf("Hello %s", firstName);
Lưu ý rằng bạn phải xác định kích thước chuỗi/mảng và không cần toán tử tham chiếu (&) khi làm việc với các chuỗi scanf().
Bài trước: Từ khóa typedef trong C
Bài tiếp: Đọc - Ghi File trong C
Bạn nên đọc
Theo Nghị định 147/2024/ND-CP, bạn cần xác thực tài khoản trước khi sử dụng tính năng này. Chúng tôi sẽ gửi mã xác thực qua SMS hoặc Zalo tới số điện thoại mà bạn nhập dưới đây:


Cũ vẫn chất
-
Cách chặn từ khóa và Hashtag trên Twitter
Hôm qua -
Sạc không dây là gì? Nó nhanh hơn hay chậm hơn sạc dây? Danh sách smartphone Android hỗ trợ sạc không dây
Hôm qua -
Dynamic System Updates là gì?
Hôm qua -
Cách sao chép hoặc tạo bản sao toàn bộ trang tính trong Google Sheets
Hôm qua -
Cách sửa lỗi không thấy bộ điều hợp mạng trên Windows 10
Hôm qua -
Valentine đen là gì? Valentine đen là ngày nào?
Hôm qua -
4 cách kiểm tra lịch sử giao dịch BIDV trên điện thoại, máy tính
Hôm qua -
Cách dùng Terabox lưu trữ với 1TB miễn phí
Hôm qua 5 -
Các cách làm, tùy chỉnh trong bài sẽ giúp tăng tốc Windows 10 của bạn "nhanh như gió"
Hôm qua 6 -
Hàm COUNTIFS, cách dùng hàm đếm ô theo nhiều điều kiện trong Excel
Hôm qua