Разница между fgets и fscanf?

У меня вопрос по поводу fgets и fscanf в C. В чем именно разница между ними? Например:

char str[10];
while(fgets(str,10,ptr))
{
counter++;
...

и второй пример:

char str[10];
while(fscanf(ptr,"%s",str))
{
counter++;
...

при наличии текстового файла, который содержит строки, разделенные пустым пробелом, например: AB1234 AC5423 AS1433. В первом примере "счетчик" в цикле while не даст такого же результата, как во втором примере. При изменении "10" в функции fgets счетчик всегда будет давать разные результаты. В чем причина этого? Может кто-нибудь также объяснить, что именно делает функция fscanf, какова длина строки в каждом цикле while?

8
задан phpheini 18 January 2012 в 21:17
поделиться