Programación General > C++ Builder

 Salto De Linea

(1/2) > >>

saulillo:
hola cracks de la programacion,

estoy intentando hacer un programa que cuente todos los caracteres de una linea en un archivo. El problema es q no se como expresar el salto de linea para que termine mi bucle, tengo lo siguiente:


--- Código: Text --- char dato;int conta; //contar caracteres de la lineaconta=2;//le asigno un valor para comprobar que lo graba bien al final. //f1 y f2 son los ficheros. if(!f1)cout << "Error abriendo el fichero" << endl;else{dato = f1.get();while(dato != '/n'){f2 << dato;dato = f1.get();}f2<<conta; }  
tb he probado poniendo en lugar del /n, eol y endl, y tampoco me salia.

Espero que me podais ayudar.

Gracias

cheroky:
Solo tienes que comprobar en el mismo bucle el valor devuelto por el metodo get y eventualmente comprobar el final de fichero por si este no estubiera formateado como el programa requiere, en otras palabras, que no incluya un salto de linea.
Una pequeña aproximacion:


--- Código: Text ---//..int main(){ std::ifstream f("f.dat"); int i = 0;            for(i=0; f.good() && f.get() != '\n'; i++);    std::cout << "Numero caracteres en la linea: " << i;     return 0;    } 
S2.

saulillo:
Gracias por responder.

creo q entiendo lo q dices, pero tengo 2 dudas:

1. que hace f.good() ??

2. en q libreria esta?? (es por si no la tengo incluida)

cheroky:
A grandes rasgos, good es un metodo de fstream, devuelve true mientras no ocurra un error de lectura del fichero.


S2.

Ithilien:
f.good te devolverá lo mismo que si haces fi.open y luego haces if ( fi ) ....

Por cierto, creo que no va bien el programa porque cuando se lee de fichero, no se tiene \n, sino que se tiene \0. Así deberás comprobar con  el caracter '\0'

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa