Определение среднего размера строки в файле - C (СИ)
Формулировка задачи:
Добрый вечер,уважаемые программисты. Очень нужна помощь в
1. Определении ошибки. На компиляторе Вижуал Студио 6( тот,на котором нужно защищать,выдает 2 ошибки при самом запуске)
2. Реализовать вывод с помощью стдерр.
3. Реализовать ввод имени файла через командную строку.
Создать подпрограмму для определения среднего размера строки в данном текстовом файле и количества непустых строк, длина которых не больше средней величины. Результаты измерений должны быть отображены через стандартный вывод ошибок stderr. Имя файла указывается в командной строке.
Вот собстно говоря мои наработки.
В компиляторе Вижуал Студио 6 выдается следующие ошибки при запускании:
--------------------Configuration: laba3 - Win32 Debug--------------------
Linking...
laba3.obj : error LNK2001: unresolved external symbol __fgetc
Debug/laba3.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
laba3.exe - 2 error(s), 0 warning(s)
#include <stdio.h> #include <stdlib.h> void main() { char c; char fileName[256]={"ba.txt"}; int i=0,z=0,k=0,flag,Srednee,str[200],l=0; FILE *f; str[0]=0; f = fopen(fileName, "r"); if (f == 0) { perror("Ne mogu otkryt fail"); exit(-1); } while((c=getc(f))!=EOF) { if(c!='\n') { if ((c!=' ')&&(c!='\t')) flag=1; i=1; } else { i=0; flag=0; } k+=i; if (flag) { str[l]=str[l]+i; } if (i==0) { z++; if(str[l]) {l++; str[l]=0;} } } fclose(f); Srednee=k/z; k=0; for(i=0;i<l;i++) if (str[i]<=Srednee) k++; printf("Srednee zna4enie = %d\n",Srednee); printf("kolvo strok ne dlinee srednego = %d",k); }
Решение задачи: «Определение среднего размера строки в файле»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> int main() { char c; char fileName[256]; printf("%s", "Введите имя файла в который хотите отрыть: \n"); scanf("%s",fileName); int i=0,z=0,k=0,flag,Srednee,str[200],l=0; FILE *f; str[0]=0; f = fopen(fileName, "r"); if (f == 0) { perror("Ne mogu otkryt fail"); exit(-1); } while((c=getc(f))!=EOF) { if(c!='\n') { if ((c!=' ')&&(c!='\t')) flag=1; i=1; } else { i=0; flag=0; } k+=i; if (flag) { str[l]=str[l]+i; } if (i==0) { z++; if(str[l]) {l++; str[l]=0;} } } fclose(f); Srednee=k/z; k=0; for(i=0;i<l;i++) if (str[i]<=Srednee) k++; printf("Srednee zna4enie = %d\n",Srednee); printf("kolvo strok ne dlinee srednego = %d",k); return 0; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д