forked from 131/lab0.1_letscontinue
12
This commit is contained in:
41
README.md
41
README.md
@@ -1,41 +0,0 @@
|
||||
## letscontinue
|
||||
|
||||
Копия README.md на сайте `https://timplab.syktsu.ru/131/lab0.1_letscontinue`
|
||||
|
||||
|
||||
### Задачи
|
||||
|
||||
* написать программу `wcl`.
|
||||
|
||||
В качестве аргументов программе `wcl` передаётся один или несколько путей к файлам.
|
||||
На выход печатается количество строк и имя файла (разделённые символом \t).
|
||||
|
||||
Примеры работы:
|
||||
|
||||
```
|
||||
$ ./wcl ./test/wiki_ci
|
||||
3335 ./test/wiki_ci
|
||||
|
||||
$ ./wcl ./test/wiki_ci ./test/nullfile
|
||||
3335 ./test/wiki_ci
|
||||
0 ./test/nullfile
|
||||
```
|
||||
|
||||
* дополнить wcl чтобы она печатала информацию о том, сколько в файле байт и слов.
|
||||
|
||||
* Посмотреть исходники `str.h`, `str.c`, `str_test.c`.
|
||||
`str.h` -- библиотека для работы со строками.
|
||||
Необходимо дописать функции в str.c чтобы все тесты из `str_test.c` завершились успешно.
|
||||
|
||||
## help
|
||||
|
||||
Для работы вам могут пригодится следующие команды и утилиты:
|
||||
|
||||
* malloc(3) -- функции для работы с динамической памятью
|
||||
* free(3) -- функции для работы с динамической памятью
|
||||
* realloc(3) -- функции для работы с динамической памятью
|
||||
* memset(3) -- функция, заполняющая буфер константным значением
|
||||
* memcpy(3) -- функция, копирующая данные между двумя массивами
|
||||
* memmove(3) -- функция, копирующая данные между массивами (входящий и исходящий массивы могут пересекаться)
|
||||
* strlen(3) -- функция, вычисляющая длину строки
|
||||
* strcpy(3) -- функция, копирующая строку в буфер
|
||||
5
wcl.c
5
wcl.c
@@ -3,10 +3,6 @@
|
||||
#include <ctype.h>
|
||||
void process_file(const char *filename, long *lines, long *words, long *bytes) {
|
||||
FILE *file = fopen(filename, "r");
|
||||
if (!file) {
|
||||
perror(filename);
|
||||
return;
|
||||
}
|
||||
int ch;
|
||||
int in_word = 0;
|
||||
while ((ch = fgetc(file)) != EOF) {
|
||||
@@ -23,7 +19,6 @@ void process_file(const char *filename, long *lines, long *words, long *bytes) {
|
||||
fclose(file);
|
||||
}
|
||||
int main(int argc, char *argv[]) {
|
||||
long total_lines = 0, total_words = 0, total_bytes = 0;
|
||||
printf("Name\tLines\tBytes\tWords\n");
|
||||
for (int i = 1; i < argc; i++) {
|
||||
long lines = 0, words = 0, bytes = 0;
|
||||
|
||||
Reference in New Issue
Block a user