Buen día<div><br></div><div>Estoy haciendo un programa que necesita abrir un archivo de texto simple (txt,dat, csv), y para ello utilizo la librería fstream de C++. </div><div><br></div><div>Para variar, el código lo he compilado en Linux y Windows de tal manera que se pueda utilizar en ambas plataformas.</div>

<div>En Linux no he tenido problemas para compilarlo  utilizarlo, pero como también planeo que haya gente que lo utilice en windows pues tengo que compilarlo ahí. </div><div><br></div><div>El código que estoy utilizando es:</div>

<div><br></div><div><div>#include <iostream></div><div>#include <string></div><div>#include <cstdlib></div><div>#include <cctype></div><div>#include <fstream></div><div>using namespace std;</div>

<div><br></div><div>int main(int argc, char *argv[])</div><div>{</div><div>string nombre_archivo;</div><div>fstream entrada;</div><div><br></div><div><br></div><div>do</div><div>  {</div><div>  cout << "Filename to open: ";</div>

<div>  //Se solicita el nombre del archivo de comas que se abrira. </div><div>  getline(cin, nombre_archivo);</div><div>  entrada.open(nombre_archivo.c_str());</div><div>  cout << nombre_archivo << endl;</div>

<div>  cout << "Mensaje de apertura de archivo: " << entrada.fail() << endl;</div><div>  }</div><div>while(entrada.fail());</div><div><br></div><div>cout << "adios..." << endl;</div>

<div><br></div><div>return 0;</div><div>}</div></div><div><br></div><div>Lo estoy compilando con Dev-C++. </div><div><br></div><div>Lo que me pasa con esto es que si pongo el nombre correcto del archivo a la primera, lo abre correctamente. Pero bueno, lo que hago con el while es que mientras el valor que arroje la función fail() sea verdadero, se regrese a las instrucciones entre las llaves. </div>

<div>Antes de llegar al final de las instrucciones en las llaves del loop, hago que devuelva el nombre que se introdujo.</div><div>Eso pasa en Linux y me vuelve a pedir el nombre del archivo. Sin embargo en Windows no, de hecho lo que hace es mandarme el valor de no abierto (un valor verdadero, 1).</div>

<div><br></div><div>Digamos que tengo un archivo llamado prueba.txt y pasa lo siguiente</div><div><br></div><div>#open.exe</div><div>Filename to open: ejemplo</div><div>ejemplo</div><div>Mensaje de apertura de archivo: 1</div>

<div>Filename to open: prueba.txt<br clear="all"><div>Mensaje de apertura de archivo: 1</div><div><br></div><div>Y así sucesivamente, y aunque teclee el nombre correcto no lo abre.</div><div><br></div><div>¿Alguien podría darme una mano con esto? ¿Hay algo que se tenga que saber sobre esto en particular? </div>

<div><br></div><div>De antemano les agradezco su ayuda.</div><div><br></div>-- <br>Saludos<br><br>Joaquín Pérez Valera<br>
</div>