Mô tả bài toán
Chương trình này tách các số lẻ và số chẵn từ một tệp tin. Sau đó ghi số lẻ vào tệp ODD và số chẵn vào tệp EVEN.
Các bước thực hiện:
- Mở tệp
DATAở chế độ ghi, nhập các số rồi đóng tệp. - Mở lại
DATAở chế độ đọc, mởODDvàEVENở chế độ ghi. - Dùng vòng lặp
whileđể kiểm tra số lẻ/chẵn và ghi vào tệp tương ứng. - Đóng tất cả tệp, sau đó mở
ODDvàEVENđể đọc và hiển thị nội dung.
Chương trình minh họa
#include <stdio.h>
int main() {
FILE *f1, *f2, *f3;
int number, i;
printf("Noi dung file DATA:\n");
f1 = fopen("DATA", "w"); // tạo file DATA
for (i = 1; i <= 10; i++) {
scanf("%d", &number);
if (number == -1) break;
putw(number, f1);
}
fclose(f1);
f1 = fopen("DATA", "r");
f2 = fopen("ODD", "w");
f3 = fopen("EVEN", "w");
while ((number = getw(f1)) != EOF) { // đọc từ DATA
if (number % 2 == 0)
putw(number, f3); // ghi vào file chẵn
else
putw(number, f2); // ghi vào file lẻ
}
fclose(f1);
fclose(f2);
fclose(f3);
f2 = fopen("ODD", "r");
f3 = fopen("EVEN", "r");
printf("\n Noi dung file ODD:\n");
while ((number = getw(f2)) != EOF)
printf("%3d", number);
printf("\n Noi dung file EVEN:\n");
while ((number = getw(f3)) != EOF)
printf("%3d", number);
fclose(f2);
fclose(f3);
return 0;
}
Kết quả đầu ra
Noi dung file DATA: 1 2 3 4 5 6 7 8 9 10 Noi dung file ODD: 1 3 5 7 9 Noi dung file EVEN: 2 4 6 8 10