Im в настоящее время изучает C через случайные вопросы математики и ударил стену. Я пытаюсь прочитать в 1000 цифр массиву. Но без указания размера массива сначала я не могу этого сделать. Мой ответ состоял в том, чтобы подсчитать количество целых чисел в файле, а затем установить его как размер массива. Однако моя программа возвращает 4200396 вместо 1000, как я надеялся. Не уверен, что происходит.Простой подсчет количества целых чисел в файле в C
мой код: EDIT
#include <stdio.h>
#include <stdlib.h>
int main (void)
{
FILE* fp;
const char filename[] = "test.txt";
char ch;
int count = 0;
fp = fopen(filename, "r");
if(fp == NULL)
{
printf("Cannot open file: %s\n", filename);
exit(8);
}
do
{
ch = fgetc (fp);
count++;
}while (ch != EOF);
fclose(fp);
printf("Text file contains: %d\n", count);
return EXIT_SUCCESS;
}
файл test.txt:
731671765313306249192251196744265747423553491949349698352031277450632623957831801698480186947885184385861560789112949495459501737958331952853208805511
125406987471585238630507156932909632952274430435576689664895044524452316173185640309871112172238311362229893423380308135336276614282806444486645238749
303589072962904915604407723907138105158593079608667017242712188399879790879227492190169972088809377665727333001053367881220235421809751254540594752243
525849077116705560136048395864467063244157221553975369781797784617406495514929086256932197846862248283972241375657056057490261407972968652414535100474
821663704844031998900088952434506585412275886668811642717147992444292823086346567481391912316282458617866458359124566529476545682848912883142607690042
242190226710556263211111093705442175069416589604080719840385096245544436298123098787992724428490918884580156166097919133875499200524063689912560717606
0588611646710940507754100225698315520005593572972571636269561882670428252483600823257530420752963450
Любая помощь будет большим.
Если вы хотите прочитать отдельные целые числа, их нужно разграничить - иначе вся последовательность цифр будет рассматриваться как одно целое * (которое будет переполняться несколько раз). Если вы хотите подсчитать символы, используйте 'fgetc' для подсчета (или есть лучшие альтернативы для возврата размера файла и т. Д.) – Nim
Поскольку вы не используете' isdigit() 'или какой-либо другой механизм для проверки того, что цифры на самом деле являются цифрами, вы можете просто использовать размер файла. – technosaurus