Witam. Otóż posiadam taki oto program, który przy próbie wpisania do bufora danych z bazy wywala mi się, w jaki sposób to rozwiązać ? Kolejna sprawa to nie wyłapuje mi funkcji gets ( po prostu pomija jakiekolwiek wczytywanie tekstu, jak by wgl tego gets nie było ) No i prosiłbym o ewentualne komentarze jak rozszerzyć ten program bądź tez w jaki prostszy sposób przeszukiwać elementy bazy. Pozdrawiam

#include "stdafx.h"
#include <conio.h>
#include <stdio.h>
#include <string.h>
#include <cstdlib>
#include <malloc.h>
void noweslow();
void czysc();
void tlumacz();
int _tmain(int argc, _TCHAR* argv[])
{
    int key;
    int koniec;
    koniec=0;
    do
    {
    system("CLS");
    printf("MENU:\n");
    printf("Wprowadz nowe slownictwo[1]\n");
    printf("Tlumacz[2]\n");
    printf("Wyczysc baze[3]\n");
    printf("Koniec[4]\n");
    printf("Wybor:");
    scanf("%d",&key);
    switch(key)
    {
    case 1:
        noweslow();
    break;
    case 2:
        tlumacz();
    break;
    case 3:
        czysc();
        break;
    case 4:
        printf("\nDowidzenia !");
        koniec=1;
        break;

    }
    }while(!koniec);
    _getch();
    return 0;
}

void noweslow()
{
    char slowo1[128];
    char slowo2[128];
    printf("\nPodaj slowo po ANG:");
    scanf("%s",&slowo1);
    printf("\nPodaj polski odpowiednik:");
    scanf("%s",&slowo2);
    FILE *baza; 
    baza = fopen("baza.txt", "ab"); 
    if(baza)
    {
        fprintf(baza, "%s:%s:", slowo1,slowo2);
        fclose(baza);
    }

    printf("\nDone!\n");
}

void czysc()
{
    FILE *baza; 
    baza = fopen("baza.txt", "w");  
    printf("\nWyczyszczono!\n");
}

void tlumacz()
{
    char zdanie[128];
    FILE *baza; 
    int dlug;
    baza = fopen("baza.txt", "r");  
    if(baza)
    {
        fseek(baza,0,SEEK_END);
        dlug= ftell(baza);
        fclose(baza);
    }
    char *n=NULL;
    n = new char[dlug];
    printf("Wprowadz slowo do przetlumaczenia:\n");
    gets(zdanie);
    baza = fopen("baza.txt", "r");  
    if(baza)
    {
        fscanf(baza, "%s", &n);
        fclose(baza);
    }

    if(strstr(n, zdanie))
    {
        int i,temp;
        int x=0;
        for(i=0;i<dlug;++i)
        {

            if(zdanie[x]==n[i])
            {
                x++;
                if(n[i+1]==':') 
                    {
                        temp=i+2;
                        break;
                }
            }
        }
        printf("TLUMACZENIE: ");
        for(i=temp;i<dlug;++i)
        {
            if(n[i]==':') break;
            printf("%c",n[i]);
        }
        _getch();
    }
    else printf("Brak tego slowa w bazie !\n");
    delete [] n;
}