ubicacion - la copia de sistema() falla, mientras que la copia de cmd funciona
seleccionar ubicacion de copia de seguridad del equipo para restaurar (2)
En cmd.exe, puedo ejecutar el comando "copy c: / hello.txt c: / hello2.txt" y funcionó bien. Pero en mi programa C, ejecuté este fragmento de código y obtuve el siguiente error:
#include <iostream>
using namespace std;
int main()
{
system("copy c:/hello.txt c:/hello2.txt");
system("pause");
return 0;
}
Salida: el sistema no puede encontrar el archivo especificado.
¿Alguien sabe lo que está pasando aquí?
Alternativamente, todas las funciones de Windows son compatibles con las barras de estilo de Unix
system("copy c:/hello.txt c:/hello2.txt");
Algunas personas prefieren esto ya que es más fácil detectar un ''/' impar.
Pero podría confundir a los usuarios de Windows si muestra esta ruta en un mensaje.
Dentro de cadenas C (y bastantes otros lenguajes que usan las mismas reglas de escape), /
debería ser //
ya que es el carácter de escape. Le permite ingresar, en texto normal, caracteres no imprimibles tales como:
- el carácter de tabulación
/t
. - el carácter de retorno de carro
/r
. - el carácter de nueva línea
/n
. - otros que no cubriré en detalle.
Como /
se usa como el carácter de escape, necesitamos una forma de poner un ''/'
real en una cadena. Esto se hace con la secuencia //
.
Por lo tanto, tu línea debe ser:
system("copy c://hello.txt c://hello2.txt");
Esto a veces puede llevar a errores oscuros con comandos como:
FILE *fh = fopen ("c:/text.dat", "w");
donde /t
es en realidad el carácter de tab
y el archivo que intenta abrir es:
c : TAB e x t . d a t .