From d4e47bf48923f80c59628b667be99d9e224290ef Mon Sep 17 00:00:00 2001 From: NRZ Code Date: Wed, 30 Apr 2025 16:24:27 -0300 Subject: [PATCH] Leitura de lines, words e bytes de stream --- wc.c | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/wc.c b/wc.c index ba4367f..15b0c5a 100644 --- a/wc.c +++ b/wc.c @@ -1,6 +1,27 @@ #include #include +#include -int main() { +int main(int argc, char **argv) { + char buffer[BUFSIZ]; + int lines = 0, words = 0, bytes = 0; + FILE *stream = fopen(argv[1], "r"); + if (stream == NULL) { + perror("Erro ao abrir o arquivo"); + exit(EXIT_FAILURE); + } + while (fgets(buffer, BUFSIZ, stream) != NULL) { + /* bytes */ + bytes += strlen(buffer); + char *str; + /* words */ + str = strdup(buffer); + while (strtok_r(str, " \t\n", &str) != NULL) + words++; + /* lines */ + lines++; + } + printf("%d %d %d %s\n", lines, words, bytes, argv[1]); + fclose(stream); return EXIT_SUCCESS; }