У меня есть текстовый файл, в котором есть только цифры (0, 1, 2 и 3), и я хочу обработать данные, чтобы узнать, сколько раз появляется каждое число.
Следующая программа работает с небольшим текстовым файлом (<100 чисел), но с большими файлами (мне нужно обработать в итоге несколько тысяч данных), программа считывает числа, которых нет в текстовом файле. </p>
Вот мой код:
FILE *file;
char c;
int nb;
int th0 = 0, th1 = 0, th2 = 0, th3 = 0;
file = fopen("../data", "r");
if (file == NULL) {
printf("ERROR FILE: %s", strerror(errno));
return EXIT_FAILURE;
}
while (1) {
if (fscanf(file, "%c", &c) == EOF)
break;
nb = atoi(&c);
printf("%d", nb);
switch (nb) {
case 0:
th0++;
break;
case 1:
th1++;
break;
case 2:
th2++;
break;
case 3:
th3++;
break;
default:
break;
}
}
Буду признателен за любые предложения.
РЕДАКТИРОВАТЬ, ввод текста с выводом:
Файл данных (181 число):
001110120101010102012012021201021202102012012012012010210210210120120230103120130230123201320310231023102302301231203213210131032103210230120320310320213202301320123120312302321023
Выход:
Конец чтения не совпадает с тем, что находится в файле данных и насчитывает 156 чисел