From 5f66cc8eea1a027fe15b54f75af9e78f59c7f9fb Mon Sep 17 00:00:00 2001 From: etrushko05 Date: Sat, 18 Oct 2025 05:12:52 -0400 Subject: [PATCH] 12 --- README.md | 41 ----------------------------------------- wcl | Bin 16296 -> 16248 bytes wcl.c | 5 ----- 3 files changed, 46 deletions(-) delete mode 100644 README.md diff --git a/README.md b/README.md deleted file mode 100644 index 9f4b773..0000000 --- a/README.md +++ /dev/null @@ -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) -- функция, копирующая строку в буфер diff --git a/wcl b/wcl index 4212e22cf5b2ad41656ab03ae4cee8232019ac57..6344e1ec5048372e4367f5b20b8036a312d0cb75 100755 GIT binary patch delta 1241 zcmY*YeP|nH7=NG3*DmdvyI#vBTWQixowY7^`EW@Z+FWpD7yodZM6gJ)bGlg>*v=G1 zs!iAj#4?ujk)beTV@wB|Fc;Z6Hra+S=^uj(VNOKxgF%G-k)nh8hdZCkT?F6b-rxKD zp5OC+Jn#FQU0C~|;ulW}tkpCN*m8B~bAHNWSyR;?6n@fS8Ivf&K7NL?taocAFrep! ztEc8KrhaeXAc~2@fV0cV~(KPRJ)=SKZvVbk9Y6B*9&{t%v|AZ9CTfJgK@Nq!~V<> zFlVcGupJa*AC5`W)9V>|CTwnQ!!*xGx5u`>svf6}a_lX#%~l_^aGeFLh*`HB&_v5j zYXA2pan}7Z@OaxTLkHe>9|Lc#DxF)mBrL&mcv^TY{~4vi=rzKO{k1pj3m$64`+^$N zkB&|&jKKA(38}S0ufFK|nS}b`8wK9@#TP7^;%{sueX6B@CW;%yKKKHYV*k)X(zChY z7xjaqADTnGe814CFOJ?NqcLO{M&mW=ZnM|8~_42okD~}9AFON6zcQFn} z(citRe0xIH}_qqhi;>fsCoKxwZOpT&Op(=k@n4)FV1W`@Q*D)$Ri(q zg`#o2bjHB z+ZUq&$GVt?5RpN{KtzFJEf?_ssJJVt5LKc+k6%V*zHA5I!#mLo`Nfz5G&%J;&c@_G zyAB8K*>BNN1h#=DKNXW96!oAnD<+@!uzx*)Z3$7O!LLAU11cVvFbq8n2n(3kjEIo--v3RI=d zt#|)?=63JhGtd28bSdrE4s`9CZ-WaKsl|yjinqN^FVvq-s9M@-J8W8fv;YOG4YN!ZY$igG{ZdNA8QB|>k)BSweGc#y^zbD&Vj}DS(d{WSd2^8D6yig z>BsPe#>t2`o83v!^Q?hQv}SpNoKuGVY55}Vk|VF6t*vhox^(D*%tFxa6Vrljrc(EN zQ;@NrppEc}-AA2p%RVDw^6eE)>8e)H9hH%WmmPENIpJNIkWsBNYk3vdL;V2meUD$q zdZ{fNAwurG7;**PtVg;6DZ_na_||v}o3`CXBAZ$q=hYQgAg_^c7!vv2 zb^ap$+cP>-Zh{WTNv4R!qFEsjT$txRXsMv^=#A+(zwrd@R{+!D%7h$(l6A zGAn&m`{-X)Wu+m770)VULSWNFKWgv?2(NvJiQt+Lr4yhCncaW{Myu;NX}jmn7k zjB`$UR2)-ObpaW9lxdXNO;ue)`6N6ob<+J%k|Hz@*QLF55mqH%@O|WMpr0IUa=*nL z+G*#0b2ea4cOf*1_gF;?e(n@!jlP=w)rMAE$6)Q@0G$Lrbdq!1;8duMEkK^_|nC_Bsstu_2Br$@I$P_mak;QcC z{)ibP;tCWZJ{XO-`R@$mZMYiggztNrcmIuuz=?!C5bMC7fdreJ*R}_>J(@-n5RCe4 zhtT$*-CW5;Yt;B^D_y-+TG@(8+8M;SEVym@UQD?J!-y^$s3}|FQe5U016APLc#IDl z 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;