Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Добавление проверки в готовую программу


Автор: RendomID 19.6.2014, 20:17
Ребятаааа, помогите, у меня есть программа:
Код C++
Код

#include <stdio.h>
#include <conio.h>
using namespace std;
 
FILE *fp;
 
void print(void)
{
   char c;              // локальная переменная
   if (fscanf(fp,"%c",&c) == EOF) return;
   print();     
   printf("%c",c);          // вывод символа из системного стека
}
main()
{
   clrscr();                // очистить экран
   fp = fopen("ovp2.txt","rt");         //открыть текстовый файл на чтение
   print();             // вызов подпрограммы
   getch();
}


Данная программа читает текст записанный в текстовом файле, и переписывает его задом-наперед. Подскажите как реализовать ( или добавить условие ), что бы задом наперед записывались только цифры, а буквы ( англ или рус ) не учитывались. Размер текста 1-2 строчки.

Автор: Nerevar 21.6.2014, 22:17
Мне одному кажется, что это рекурсия?!
Код

void print(void)
{
   char c;             
   if (fscanf(fp,"%c",&c) == EOF) return;
   print();     //Вызов самой себя из самой себя О_о ?!
   printf("%c",c);          
}
 

Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Dobavleniye-proverki-v-gotovuyu-programmu-id53a31b4aae2015b5488b4567#findElement_E7045_53a5da42ae20155102aa62c3_0

Автор: borisbn 25.6.2014, 10:11
Цитата(RendomID @  19.6.2014,  20:17 Найти цитируемый пост)
 записывались только цифры

вместо
Код
printf("%c",c);

пишешь
Код
if ( c >= '0' && c <= '9' ) {
    printf( "%c", c );
}


Цитата(Нэраварин @  21.6.2014,  22:17 Найти цитируемый пост)
Мне одному кажется, что это рекурсия?!

Она самая. А что тебя испугало ?

Автор: Nerevar 25.6.2014, 13:52
Я СИшку не особо знаю да и хз как работает ф-ция fscanf, но разве в данном случае оно не станет безконечно жрать ресурсы и в итоге не повесит программу? могу ошибаться...

Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Dobavleniye-proverki-v-gotovuyu-programmu-id53a31b4aae2015b5488b4567#findElement_E7045_53aaaa08ae2015dc0d347d4f_0

Автор: Nerevar 25.6.2014, 13:56
А не тфу сглупил онож остановится когда достигнет конец файла или перестанет удовлетворять условию
Код

if ( c >= '0' && c <= '9' ) {    printf( "%c", c );}



Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Dobavleniye-proverki-v-gotovuyu-programmu-id53a31b4aae2015b5488b4567#findElement_E7045_53aaaacaae2015915634821f_0

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)