Witam
Po wczytaniu z pliku tablica bufor będzie wyglądać tak
bufor[0]=tak\n\0
bufor[1]=jak\0
bufor[2]=\0
itd
natomiast pytanie
pytanie=tak\0 po wpisaniu z klawiatury tak
pytanie=jak\0 po wpisaniu z klawiatury jak
Teraz widzisz dlaczego słowo "jak" ci się wyświetla na ekranie a słowo "tak" nie
są różne.
Co jest temu winne?
Funkcja gets wczytuje wiersz, ale końcowy znak nowego wiersza(\n) zastępuje
znakiem(\0)
natomiast funkcja fgets() kończy czytanie gdy przeczyta n-1 znaków(dokłada za nimi znak \0) lub napotka znak końca lini(\n).Wtedy nie likwiduje znaku nowego wiersza tylko dokłada za nim znak(\0)
Rozwiązać ten problem możesz tak:
#include <iostream.h>
#include <fstream.h>
main()
{
char bufor[100][200];
char pytanie[100];
ifstream strumien; //strumien do odczytu zamiast FILE
strumien.open("pytania.txt"); //otwarcie pliku
gets(pytanie);
for(int i=0;i<=100;i++)
{
strumien.getline(bufor[i],100); //nie wstawia znaku \n
if(!strcmp(pytanie,bufor[i]))
cout << bufor[i++] ;
}
strumien.close();
cin.get();
}