Определение среднего размера строки в файле - 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;
}