Input và Output

Input và Output trong C

Mặc định trong linux có input mặc định là bàn phím, output mặc định là màn hình và output lỗi là màn hình.

File poiter Thiết bị Giải thích
stdin Bàn phím Input mặc định
stdout Màn hình Output mặc định
stderr Màn hình Hiển thị error mặc định

Nhập và hiển một ký tự với hàm getchar() và putchar()

Xem ví dụ sử dụng hàm getchar()putchar() như sau:

1
2
3
4
5
6
7
8
printf("Enter a character: ");
// hàm getchar sẽ chờ bạn nhập ký tự từ bàn phím
// sau khi bạn nhập thì hàm này trả về một ký tự đó
c = getchar(); 

printf("\nYou entered: ");
// hiển thị ký tự ra màn hình
putchar(c);

Sử dụng hàm gets() và puts() để nhập và hiển thị string

Hàm gets sẽ nhập một string, bạn kết thúc bằng phím Enter. Ví dụ sau mô tả cách nhập string dài không quá 100 ký tự.

1
2
3
4
5
6
7
8
9
char str[100];
printf("Enter a string: ");
// hàm gets sẽ chờ bạn nhập một string kết thúc bằng enter
// sau khi bạn nhập thì hàm này trả về một ký tự đó
gets(str); 

printf("\nYou entered: ");
// hiển thị string ra màn hình
puts(str);

Sử dụng hàm scanf và hàm printf

Hàm scanf sẽ nhập các input đã định dạng trước từ bàn phím, còn hàm printf sẽ in chuỗi string theo định dạng.

1
2
3
4
5
6
7
8
char str[100];
int i;

printf("Enter a value: ");
// %s là string, %d là digit
scanf("%s %d", str, &i);

printf("\nYou entered: %s %d ", str, i);

Ví dụ khi chạy chương trình

1
2
Enter a value: mystring 8
You entered: mystring 8

Hiển thị error với hàm perror

Hàm perror là viết tắt của print error message, hàm này sẽ hiển thị thông báo lỗi ra stderr. Ví dụ hàm sau mở một file không tồn tại và in ra lỗi.

1
2
3
4
5
6
7
FILE * pFile;
pFile = fopen("unexist.ent","rb");
if (pFile == NULL) {
   perror("The following error occurred");
} else {
   fclose(pFile);
}

Một cách khác để hiển thị error là sử dụng hàm fprintf

1
fprintf(stderr, "Error in program.\n");