Можете ли вы помочь мне найти мою ошибку в подсчете количества цифр в строке, а затем сравнить его с общим числом. Вот моя программа, которая подсчитывает количество цифр в строке:
#include<stdio.h>
#include<string.h>
#include<ctype.h>
int main()
{
int pc, c, NumbersPerLine= 0, NumbersTotal=0, line= 1;
FILE *inputFile;
if(!(inputFile=fopen("C:\\Test\\Test.txt","r")))
{
printf("the file does not exist\n");
return 0;
}
for (pc='\n', c=fgetc(inputFile);c!=EOF;pc=c,c=fgetc(inputFile))
{
if (isdigit(c))
{
NumbersPerLine++;
}
else
if (c=='\n')
{
printf("%d %d\n", line++, NumbersPerLine);
NumbersPerLine= 0;
}
}
if (pc!='\n') printf("%d %d %d\n", line, NumbersPerLine);
fclose(inputFile);
}
Но теперь мне также нужно добавить общее количество цифр в файл, и все, что я сделал, это посчитал их построчно, а затем суммировал их вместо того, чтобы считать их все. Я пытался получить такой результат:
1 (that's the number of the line) 5 (the number of digits per line) 18 (total digits)
2 5 18
3 4 18
4 1 18
5 1 18
6 1 18
7 1 18
Я попытался поставить NumbersTotal++; после NumbersPerLine++;, но все, что я получил, это:
"1 5 5
2 5 10
3 4 14
4 1 15
5 1 16
6 1 17
7 1 18"
Я также пытался использовать do-while до «для»
c=fgetc(inputFile);
do
{
NumbersTotal++;
}while(isdigit(c));
но после того, как это условие выполнено, программа завершается и не продолжается с for. Можешь мне помочь?
fgets()
вместоfgetc()
. И этот цикл for ужасен. - person   schedule 19.01.2014char *path="C:..."; if(!(inputFile=fopen(path, "r"))) { perror(path);return EXIT_FAILURE;}
- person William Pursell   schedule 19.01.2014