IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> Файлы, Язык Си.Помогите найти ошибку
сообщение
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 146
Пол: Мужской

Репутация: -  0  +


Задание:Написать программу, которая считывает текст из файла и определяет, сколько в нём слов, состоящих из не более чем четырёх букв.

Мне прогу написали, но мне надо её изменить.Я изменил, но она почему-то перестала работать!Файл открывается, но на экран ничего не выводится(как будто текст пустой)!И поэтому количество слов выводится 0.
Подскажите пожалуйста где ошибка!!!

Программа:
# include <stdio.h>
# include <conio.h>
# include <string.h>
# define name "G:\\text.txt"
# define znak ";,.?!"
void main()
{
FILE *f;
int x,y,i;
if (!(f=fopen(name,"rt"))) printf("\nOshibka otkritiya faila:");
fseek(f,0,SEEK_END);
long len=ftell(f);
char *s=new char[len+1];
x=0;
while (fgets(s,255,f))
{
puts(s);
i=0;
while (i<strlen(s))
{
while ((i<strlen(s)) && (strchr(znak,s[i]))) i++;
if (i<strlen(s))
{
y=i;
while ((i<strlen(s)) && (!(strchr(znak,s[i])))) i++;
x+=(i-y-1<=4)?1:0;
}
}
}
printf("Kol-vo slov,sostoyashix iz menee 4 bukv=%d\n",x);
fclose(f);
}
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Цитата
Файл открывается, но на экран ничего не выводится(как будто текст пустой)!
А где у тебя находится указатель файла, ты забыл? Ты ж его сам поставил на конец файла:

...
fseek(f,0,SEEK_END);
...

Ну, так перебрось в начало (то же самое, только SEEK_SET, или специальная функция rewind())
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 146
Пол: Мужской

Репутация: -  0  +


Цитата(volvo @ 22.04.2007 17:05) *

А где у тебя находится указатель файла, ты забыл? Ты ж его сам поставил на конец файла:

...
fseek(f,0,SEEK_END);
...

Ну, так перебрось в начало (то же самое, только SEEK_SET, или специальная функция rewind())


И правда!Теперь всё работает!Большое спасибо!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Новичок
*

Группа: Пользователи
Сообщений: 12
Пол: Мужской

Репутация: -  0  +


Сори за офтоп, не удержался\\ а какое красивое сочетание переменных X.Y.I...)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 22.09.2020 14:09
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name