ARCHIVO 1.
Hola Mundo
ARCHIVO2.
Hola Mundo\n
Me gustaria recalcar que en el segundo archivo se cuenta con una secuencia de escape de nueva linea al final de la frase "Hola Mundo".Mi problema se presenta cuando quiero determinar cuantas lineas existen en el archivo mediante un programa como el siguiente:
Código
#include <stdio.h> int main(){ FILE *archivo; int linea=0; char carac; do{ if(carac== '\n') linea++; }
Quiero recalcar que el anterior programa solo es para poner en muestra los resultados que me crean incertidumbre.Cuando yo ejecuto dicho programa con el archivo 1, es decir, con el archivo que no tiene salto de linea, el programa me arroja que el programa tiene '0' lineas,esto me hace pensar que el caracter EOF fue encontrado en la misma linea donde se encuentra la frase, sin embargo cuando lo ejecuto en el segundo archivo , es decir, el archivo que contiene la frase con un salto de linea me arroja que existen '2' lineas , pero no encuentro la razon de por que es asi, comprendo que la primera linea es la de la frase posterior a eso existe un salto de linea y por los resultados con el primer archivo me hace pensar que el caracter EOF deberia estar en la segunda linea pero aún asi el programa me esta considerando una segunda linea, ¿Por qué succede esto?.De manera mas grafica yo intento interpretar que los archivos se verian asi:
ARCHIVO 1
Hola Mundo 'EOF'
ARCHIVO 2
Hola Mundo
'EOF'
Conforme a lo anterior no entiendo por que el programa lo toma como si el segundo archivo se viera de la siguiente manera:
ARCHIVO 2
Hola Mundo
'EOF'
De antemano les agradezco su tiempo , les agradeceria si me pudieran comentar cual es el error en mi forma de pensar y si me pudieran apoyar con un libro o un articulo donde hablen mas a fondo de detalles como estos.