2011-01-26 16 views
14

Estoy tratando de leer un archivo que he leído anteriormente con éxito. Lo estoy leyendo a través de una biblioteca, y lo estoy enviando como está a la biblioteca (es decir, "miarchivo.txt"). Sé que el archivo se lee del directorio de trabajo/actual.¿Cómo encuentro el directorio actual?

Sospecho que el directorio actual/de trabajo ha cambiado de alguna manera. ¿Cómo verifico cuál es el directorio actual/de trabajo?

Respuesta

21

Como ha agregado la etiqueta visual-C++ voy a sugerir la función de ventana estándar para hacerlo. GetCurrentDirectory

Uso:

TCHAR pwd[MAX_PATH]; 
GetCurrentDirectory(MAX_PATH,pwd); 
MessageBox(NULL,pwd,pwd,0); 
+0

. ¿Estás seguro de que no solo escribe la parte que cabe en el búfer? – monoceres

+0

Realmente lo siento ... Mi programa era incorrecto ... Acabo de eliminar mis comentarios para que no engañaran a los demás. Lo probé de nuevo: si el tamaño del búfer especificado no es lo suficientemente grande, el búfer se mantendrá sin modificaciones y se devolverá el tamaño deseado. – yaobin

2

Aquí está la respuesta independiente de la plataforma más llegué hace un tiempo:

How return a std::string from C's "getcwd" function

¡Es bastante largo , pero hace exactamente lo que se supone que debe hacer, con una buena interfaz C++ (es decir, devuelve una cadena, no un cómo-long-are-you-exactly? - (const) char*).

que se calle advertencias acerca de MSVC desaprobación de getcwd, se puede hacer un interesante

#if _WIN32 
    #define getcwd _getcwd 
#endif // _WIN32 
Cuestiones relacionadas