Heibonna
#jezykc #naukaprogramowania

https://pastebin.com/VmRq18Rf

Prosty kod z jakiegoś powodu pomija funkcję fgets. Tzn Wyswietla
"\nPodaj pelny tytul (0 = wroc) : ", a następnie kończy działanie funkcji (?)

Ma ktoś pomysł o co może chodzić unikając wrzucania całego kodu? ( ͡° ʖ̯ ͡°)
  • Najlepsze
  • Wszystkie komentarze
n.....e
n.....e
@Heibonna: Zaraz przyjda tu jacys spece od C i beda gnić z naszego rozkminiania xD
benedek
@Heibonna:
Nie ma prawa działać:
strcmp zwraca int, prócz tego fgets po wpisaniu '0' i wciśnięciu enter -> otrzymujesz '0\n' (znak końca linii)
poprawnie:
if ( strcmp(const char * str1, const char * str2) ==
Heibonna
Heibonna Autor
1
@kotbehemoth: @nietrolluje: @Defined: @nietrolluje:

Dziękuję panowie!
To co miałem za niepoprawne działanie getsa okazało się błędem, o którym pisał @benedek.
Otóż byłem przekonany, że
strcmp() == 0 gdy stringi są inne (bo w końcu false...), a jest przeciwnie
n.....e
n.....e
@Heibonna: Nie znam sie na C (tag obserwuje dla zmotywowania sie do nauki)

Ale na wikipedii przypisuja do wskaznika result moze bez tego ci kompilator to wysyla w kosmos czy cos jako redundantny kod. Tak se zgaduje :)

char napis[max_n], *result;
for (i = 1; i <=
Heibonna
Heibonna Autor
0
@nietrolluje: hmm możliwe ale w takim razie po co tam bufor xD
Defined
@Heibonna: zamiast fgets polecam używać
scanf("%199[^\n]", tab);
Czy przed wywołaniem funkcji pobierasz jakiś tekst jeszcze? Jak tak to możliwe że nie wyczysciłeś bufora za pomocą
while (getchar()!='\n');
n.....e
n.....e
Przekleiłem sam kod z fgets() i "u mnie działa". Wołaj jak to naprawisz bom ciekaw ( ͡° ͜ʖ ͡°)
kotbehemoth
@Heibonna co to znaczy kończy działanie funkcji?;) fgets wygląda ok. Może przy wywołaniu coś pisze do stdin