Tengo una pregunta sobre fgets y fscanf en C. ¿Cuál es exactamente la diferencia entre estos dos? Por ejemplo:Diferencia entre fgets y fscanf?
char str[10];
while(fgets(str,10,ptr))
{
counter++;
...
y el segundo ejemplo:
char str[10];
while(fscanf(ptr,"%s",str))
{
counter++;
...
al tener un archivo de texto que contiene cadenas que están separados por un espacio vacío, por ejemplo: AB1234 AC5423 AS1433. En el primer ejemplo, el "contador" en el ciclo while no dará el mismo resultado que en el segundo ejemplo. Al cambiar el "10" en la función de Fgets, el contador siempre dará resultados diferentes. ¿Cuál es la razón para esto? ¿Puede alguien explicar también qué hace exactamente el fscanf, cuánto dura la cuerda en cada ciclo while?
Gracias por su respuesta, ¿esto también es similar para fputs y fprintf? ¿O cuál es la diferencia entre ellos? – phpheini
No, esos son diferentes. Por ejemplo '% s' no se detiene en espacios en blanco en printf. Lee el manual. – cnicutar