Форум: Форум C++Разное
Новые темы: 00
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум C++

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: программа , которая считает английский текст из файла и выводит на экран слова, начинающиеся с гласных букв!!!
 
 автор: Fantom666   (13.05.2010 в 18:48)   письмо автору
 
 

программа , которая считает английский текст из файла и выводит на экран слова, начинающиеся с гласных букв!!!
Помогите исправить ошибку!!! Когда запускаешь прогу черное окно открывается и происходит завершение работы!!!!

#include <iostream>
#include <stdlib.h>
#include <string.h>
using namespace std;

int main(int argc, char *argv[])
{
FILE *f;
char str[30] = "";
f=fopen("Text.txt", "r");
printf("\nVivod: ");
while (!feof(f)) {
fgets(str,30,f);
for (int i=0;i<strlen(str)-1;i++)
if (str[i]==' ')
switch(str[i+1]) {
case 'e':{str[i+1]='E';break;}
case 'u':{str[i+1]='U';break;}
case 'i':{str[i+1]='I';break;}
case 'o':{str[i+1]='O';break;}
case 'a':{str[i+1]='A';break;}
case 'y':{str[i+1]='Y';break;}
}
puts(str);
}
fclose(f);
system("PAUSE");
return 0;
}

  Ответить  
 
 автор: Miha_drinking_bout   (17.05.2010 в 15:55)   письмо автору
 
   для: Fantom666   (13.05.2010 в 18:48)
 

А в директории файл text.txt лежит? Если лежит то по условию он не должен быть пуст. И вообще твоя прога работает неправильно - ищи правильное решение. Я в подобной задаче пользовался конструкцией if else. Переключателями Switch не разу не пользовался, не подскажу.

А форум как будто заброшен, "движухи" и обсуждений никаких не видно.

  Ответить  
 
 автор: Miha_drinking_bout   (17.05.2010 в 16:18)   письмо автору
 
   для: Fantom666   (13.05.2010 в 18:48)
 

если файла в дирректории нет либо он пуст, то у меня прога вылетает с ошибкой. В случае если файл не пуст то печатается все его содержимое.
Извини помочь не могу т.к. сам в cpp не шарю, свои контрольные решить не могу то.
Но я бы мотал цикл проверяя пробелы и переносы на новую строку в 1251 кодировке это hex значения пробел 20 а перенос каретки 0d 0a. а также проверять первое слово в файле и все что стоят после этих символов на гласность и печатаем пока не наткнемся на пробел либо перенос каретки. кстати gеренос каретки так же можно представить как \n.

  Ответить  
 
 автор: StaFox   (23.05.2010 в 12:57)   письмо автору
 
   для: Fantom666   (13.05.2010 в 18:48)
 

Компилятора под рукой нет, т.к. что передам лишь смысл:
В твоей программе будет происходить след. считав строку из файла, программа найдёт слово стоящее после пробела и начинающееся на гласную, и заменит эту гласную с малой на большую и выведет эту же строку, только с замененым символом.


#include <iostream>
#include <stdlib.h>
#include <string.h>
#include <conio.h>

using namespace std;

int main(int argc, char *argv[])
{
FILE *f;
char word[50]={0}, str[80] = {0};
f=fopen(".\\Text.txt""r");
printf("\nVivod: ");
while (!feof(f)) {
fgets(str,80,f);
if (str[i] == ' ') {
  switch(str[i+1]) {
case 'a':{
int k=0;
for(int j=i; j<80; j++) {
if(str[j] == ' 'break;
    word[k] = str[j];
k++;
 }
}
case 'u':{...}
case 'i':{...}
case 'o':{...}
case 'e':{...}
case 'y':{...}
}
}
puts(word);
}
fclose(f); 
getch();
return 0;
}

В общем если я не ошибся, то должно вывести слово начинающееся на "а", остальное по аналогии

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования