Đề bài
Đọc các mục từ file và hiển thị dữ liệu theo cột/bảng bằng C.
Giải pháp
Tạo file chế độ ghi, nhập dữ liệu, đóng file. Mở lại chế độ đọc, hiển thị dạng bảng trên console.
Chế độ ghi (write)
FILE *fp = fopen("sample.txt", "w");
// File không tồn tại → tạo mới
// File tồn tại → xóa cũ, ghi mới
Chế độ đọc (read)
FILE *fp = fopen("sample.txt", "r");
// File không tồn tại → trả về NULL
// File tồn tại → đọc thành công
Logic hiển thị dạng bảng
while ((ch = getc(fp)) != EOF) {
if (ch == ',')
printf("\t\t"); // Tab ngăn cột
else
printf("%c", ch);
}
Chương trình hoàn chỉnh
#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>
int main() {
char ch;
FILE *fp;
// Ghi file
fp = fopen("std1.txt", "w");
printf("Nhập văn bản. Nhấn Ctrl+Z kết thúc:\n");
while ((ch = getchar()) != EOF) {
putc(ch, fp);
}
fclose(fp);
// Đọc và hiển thị bảng
fp = fopen("std1.txt", "r");
printf("Dữ liệu dạng bảng:\n");
while ((ch = getc(fp)) != EOF) {
if (ch == ',')
printf("\t\t");
else
printf("%c", ch);
}
fclose(fp);
return 0;
}
Kết quả chạy
Nhập văn bản. Nhấn Ctrl+Z kết thúc:
Name,Item,Price
Bhanu,1,23.4
Priya,2,45.6
^Z
Dữ liệu dạng bảng:
Name Item Price
Bhanu 1 23.4
Priya 2 45.6