Нас просят создать программу, которая предоставляет таблицу, в которой пользователь может выбирать, считать ли символы, слова, предложения, строки или все вышеперечисленное. Это требует отдельной функции для каждой утилиты. У меня счетчик строк работает отлично, но по какой-то причине функция счетчика символов продолжает возвращать 0. Программа не завершена, но я очень разочарован счетчиком символов.
#include <stdlib.h>
#define WHT_SPC\
(cur == ' ' || cur == '\n' || cur == '\t')
int countLines(sp1);
int wordCounter(sp1);
int characterCounter(sp1);
int sentenceCounter (sp1);
int main()
{
int lineCount = 0;
int wordCount = 0;
int characterCount= 0;
int sentenceCount = 0;
char filename[100];
FILE* sp1;
printf("Enter Filename to be read: ");
gets(filename);
sp1 = fopen(filename,"r");
lineCount = countLines(sp1);
characterCount = characterCounter(sp1);
printf("Number of Lines: %d\n",lineCount);
printf("Number of Characters: %d\n",characterCount);
fclose(sp1);
return 0;
}
int countLines(sp1)
{
int curCh;
int preCh;
int countLn = 0;
while ((curCh = fgetc(sp1)) != EOF)
{
if (curCh == '\n')
countLn++;
preCh = curCh;
}
if (preCh != '\n')
countLn++;
return countLn;
}
int characterCounter(sp1)
{
int chr;
int countCh = 0;
while ((chr = fgetc(sp1)) != EOF)
{
if (chr != 'n' && chr != ' ')
countCh++;
}
return countCh;
}
Я понимаю, что отсутствие комментариев не является идеальным, но моя проблема очень специфична. Не ища ответы, просто совет, чтобы направить меня в правильном направлении.