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

> Внимание!

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

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

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


Пионер
**

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

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


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

Программа выводит не все слова, начинающиеся на гласные буквы и вообще не выводит слов, оканчивающихся на гласные буквы. Подскажите плиз в чем ошибка?


# include <stdio.h>
# include <string.h>
#include <ctype.h>
# define name "G:\\text.txt"
void main()
{
FILE *f;
if (!(f=fopen(name,"r"))) printf("\nOshibka otkritiya faila:");
int x,k=-1;
while (!(feof(f)))
{
k++;
fseek(f,k,SEEK_SET);
x=fgetc(f);
if(isspace(x)){
k++;
fseek(f,k,SEEK_SET);
x=fgetc(f);
if ((x=='a') || (x=='e') || (x=='i') || (x=='j') ||(x=='o')|| (x=='u') || (x=='y'))
{printf(" ");
while ((!(ispunct(x))) && (!(isspace(x)))) {
printf("%c",x);
k++;
fseek(f,k,SEEK_SET);
x=fgetc(f);
}
}
else
{
int t=k;
while ((!(ispunct(x))) && (!(isspace(x))))
{
k++;
fseek(f,k,SEEK_SET);
x=fgetc(f);
}
k--;
fseek(f,k,SEEK_SET);
x=fgetc(f);
if ((x=='a') || (x=='e') || (x=='i') || (x=='j') ||(x=='o')|| (x=='u') || (x=='y'))
{
k=t;
while ((!(ispunct(x))) && (!(isspace(x)))) {
printf("%c",x);
k++;
fseek(f,k,SEEK_SET);
x=fgetc(f);
}
}
if (isspace(x)) k--;
}
}
}
fclose(f);
}



Сообщение отредактировано: Neon6868 -


Прикрепленные файлы
Прикрепленный файл  text.txt ( 54 байт ) Кол-во скачиваний: 253
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Свой файл text.txt присоедини, потому что на моем (произвольном) файле программа просто зациклилась... Может, с твоим сработает...

А вообще - зачем тебе делать всю эту лабуду? Достаточно построчно читать файл в буфер, делить буфер на токены (strtok) и проверять, является ли первый или последний символ токена гласной буквой. Делов на 5 строк кода... Ну, на 10 от силы smile.gif
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Пионер
**

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

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


Цитата(volvo @ 4.06.2008 21:34) *

Свой файл text.txt присоедини, потому что на моем (произвольном) файле программа просто зациклилась... Может, с твоим сработает...

А вообще - зачем тебе делать всю эту лабуду? Достаточно построчно читать файл в буфер, делить буфер на токены (strtok) и проверять, является ли первый или последний символ токена гласной буквой. Делов на 5 строк кода... Ну, на 10 от силы smile.gif


Текст присоединил. К сожалению мне надо сделать обычным способом, сравнивая символы. wacko.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





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