Witam, mam oto takie zadanie:
Niech będzie dany plik tekstowy o nazwie dane.txt zawierający działania zapisane w postaci:
01010101 AND 11100111
1010101 Nand 1100111
010 OR 111
01010101 NOR 11100111
010101 xor 111001
NOT 11100111
Liczba zapisanych działań w pliku tekstowym dane.txt nie jest z góry znana.
Napisać program w ANSI C, który pobiera wszystkie działania (działanie po działaniu) do wykonania z pliku dane.txt i wypisuje je na ekranie wraz z wynikiem w postaci:
01010101 AND 11100111 = 01000101
itd.
Więc mam wczytywanie słowa po słowie z pliku
#include <stdio.h>
int main()
{
char slowo[10];
FILE *f = fopen("dane.txt", "r"); //r-read, czytanie z pliku f
while(fscanf(f, "%s", slowo) != EOF){
printf("%s ",slowo);
}
fclose(f);
return 0;
}
No to wymyśliłem sobie, że trzeba to zrobić zapisując, każde słowo w danej lini do oddzielnej zmiennej.
Tj. pierwszy i drugi ciąg bitowy to np. char ciag1[10], drugi char ciag2[10] i potem swobodnie porównywać operacje znak po znaku operacjami |, &, ! etc, w zależności czy string z 3 zmiennej , będzie równy OR, AND etc.
I tu napotykam problem. Jak pętla ma się kapnąć, do której zmiennej przyporządkować dane słowo, a potem jak zrobić aby dowiedziała się, że mamy znak końca linii i zacząć od nowa przypisywanie i porównywanie.
Chyba, że to moje myślenie jest złe i jest na to jakiś łatwy sposób o którym nie pomyślałem, bo ostatni raz bawiłem się w C z 2 lata temu i może coś mi umyka.
Za odpowiedzi z góry dziękuję!