Đọc file numbers.txt, phân loại số và ghi vào 3 file: even-numbers.txt, odd-numbers.txt, prime-numbers.txt.
Chương trình C
#include <stdio.h>
#include <stdlib.h>
int even(const int num);
int prime(const int num);
int main() {
FILE *fptrinput, *fptreven, *fptrodd, *fptrprime;
int num;
fptrinput = fopen("numbers.txt", "r");
fptreven = fopen("even-numbers.txt", "w");
fptrodd = fopen("odd-numbers.txt", "w");
fptrprime = fopen("prime-numbers.txt", "w");
if (!fptrinput || !fptreven || !fptrodd || !fptrprime) {
printf("Không mở được file.\n");
exit(EXIT_FAILURE);
}
printf("File mở thành công. Đang đọc số nguyên...\n\n");
while (fscanf(fptrinput, "%d", &num) != -1) {
if (prime(num))
fprintf(fptrprime, "%d\n", num);
else if (even(num))
fprintf(fptreven, "%d\n", num);
else
fprintf(fptrodd, "%d\n", num);
}
fclose(fptrinput); fclose(fptreven); fclose(fptrodd); fclose(fptrprime);
printf("Ghi dữ liệu thành công.\n");
return 0;
}
int even(const int num) { return !(num & 1); }
int prime(const int num) {
if (num < 0) return 0;
for (int i = 2; i <= num/2; i++)
if (num % i == 0) return 0;
return 1;
}
Kết quả
File opened successfully. Reading integers from file. Data written successfully.
Giả sử numbers.txt chứa 1..17:
even-numbers.txt: 4 6 8 10 12 14 16odd-numbers.txt: 9 15prime-numbers.txt: 1 2 3 5 7 11 13 17