Вот файл .c следуют функции в моем файле .hFinding количество символов, слов и строк в текстовом файле
#include <stdio.h>
#include "functions.h"
#define INPUT_FILE "C:/Users/user/Desktop/test.txt"
int main(){
FILE *text_file;
int num_characters, num_words, num_lines;
text_file = fopen(INPUT_FILE,"r");
if(text_file == NULL){
printf("!!-------ERROR OPENING FILE------!!\nclosing program....");
return 0;
}
num_characters = read_characters(text_file);
num_words = read_words(text_file);
num_lines = read_lines(text_file);
printf("Number of Characters: %d\nNumber of Words: %d\nNumber of Lines: %d\n",num_characters,num_words,num_lines);
return 0;
}
#include <stdio.h>
#include "functions.h"
#define INPUT_FILE "C:/Users/Lott-kerby/Desktop/test.txt"
#ifndef FUNCTIONS_H_
#define FUNCTIONS_H_
#include <stdio.h>
int read_characters(FILE *text_file){
int i;
int char_count = 0;
while((i = fgetc(text_file)) !=EOF)
char_count++;
return char_count;
}
int read_words(FILE *text_file){
char j;
int word_count = 0;
while((j = fgetc(text_file)) != EOF){
if(j == ' ')
word_count++;
}
return word_count;
}
int read_lines(FILE *text_file){
char k;
int line_count = 0;
while((k = fgetc(text_file)) != EOF){
if(k == '\n')
line_count++;
}
return line_count;
}
Цель состоит в том, чтобы найти количество символов слов и строк в текстовый файл. Я получаю правильное количество символов, когда я запускаю, но получаю неправильное количество слов и строк. Текстовый файл я использую следующим образом:
word
word
word
с этим .txt мою программу из пут: Количество characers: 1 Количество слов: 0 Количество линий: 0
любой Помощь будет принята с благодарностью. «Слова» находятся в отдельной строке в моем текстовом файле.
Как правило, вы должны только имеют декларации функций в функциях.h, а не сами функции. Они должны быть в functions.c. –
Поскольку i, j и k выполняют одно и то же задание и находятся в разных функциях, вы можете использовать одно и то же имя во всех трех функциях. Есть ли конкретная причина, почему вы не делаете 3 счета в одной функции? –
@MikkelChristiansen Я делаю это так, потому что я могу получить дополнительные баллы для инкапсуляции – Flower