Mam pytanie dotyczące fgets i fscanf w C. Jaka jest dokładnie różnica między tymi dwoma? NpRóżnica między fgets i fscanf?
char str[10];
while(fgets(str,10,ptr))
{
counter++;
...
i drugim przykładzie
char str[10];
while(fscanf(ptr,"%s",str))
{
counter++;
...
gdy o pliku tekstowego zawierającego łańcuchy, które są oddzielone przez pustą przestrzeń, np AB1234 AC5423 AS1433. W pierwszym przykładzie "licznik" w pętli while nie daje takiego samego wyniku jak w drugim przykładzie. Po zmianie "10" w funkcji fgets, licznik zawsze podaje inne wyniki. Jaki jest tego powód? Czy ktoś może również wyjaśnić, co dokładnie robi fscanf, jak długi jest ciąg w każdej pętli while?
Dzięki za odpowiedź, czy jest to podobne również w przypadku fputs i fprintf? Albo jaka jest między nimi różnica? – phpheini
Nie, te są różne. Na przykład '% s' nie zatrzymuje się na pustych w printf. Przeczytaj instrukcję. – cnicutar