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

> Внимание!

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

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

> Файлы, Язык Си, помогите найти ошибки
сообщение
Сообщение #1


Пионер
**

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

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


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

Вот программа, но когда я её запускаю, то она зависает. И я сделал, чтобы число выводилось только в конце всего текста, а как можно сделать, чтобы оно считалось и выводилось после каждого предложения?

# include <stdio.h>
# include <string.h>
# define name "D:\\text.txt"
# define znak ".?!"
void main()
{
FILE *f;
int x,y,i;
if (!(f=fopen(name,"rt"))) printf("\nOshibka");
fseek(f,0,SEEK_SET);
long len=ftell(f);
char *s=new char[len+1];
printf("\nVvedite slovo\n");
char *ch=new char[255];
scanf("%s",ch);
i=0;
while (i<strlen(s))
{
while ((i<strlen(s)) && (!(strchr(znak,s[i]))))
{
i++;
printf("\n%c",s[i]);
if (strstr(s,ch)) x++;
}
}
fclose(f);
}
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Пионер
**

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

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


Я вот переделал прогу, но она всё равно виснет! Подскажите плз из-за чего?

# include <stdio.h>
# include <string.h>
#include <ctype.h>
#include <fstream.h>
void main()
{const int len=255;
char word[len],line[len];
int x,y,i;
printf("\nVvedite slovo\n");
scanf("%s",&word);
int l_word=strlen(word);
ifstream fin("D:\\text.txt", ios::in | ios::nocreate);
if (!fin) printf("\nOshibka");
int count=0;
while (fin.getline(line,len))
{
char *p=line;
while (p=strstr(p,word))
{
char *c=p;
p+=l_word;
if (c!=line) if (!ispunct(*(c-1)) && ! isspace(*(c-1))) continue;
if (ispunct(*p) || isspace(*p) || (*p=='\0')) count++;
}
}
printf("%d",count);
}
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


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

 





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