C/Visual C - Crear archivos a partir de nombres de un txt

 
Vista:
sin imagen de perfil
Val: 185
Bronce
Ha aumentado 1 puesto en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

Crear archivos a partir de nombres de un txt

Publicado por carlos (88 intervenciones) el 21/06/2021 12:38:31
Buenas tardes, me gustaria plantear porque tengo un problema que le doy vueltas que no soluciono
El tema es el siguiente, queria hacer que he creado un indice a partir de un txt creado con cmd que me dice todos los archivos que hay en una carpeta luego programar algo que pasara de ese archivo .txt y cada nombre creara otro .txt correspondiente, el problema es que no lo crea y los nombres estan correctos.No se si añade algun caracter que desconzco o tal pero no me lo quiere crear como si no existiera el directorio
en cambio lo pruebo con el char de seguridad que puse y funciona
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
 
 
int main(){
	//LEER DE lista.txt coger de alli el nombre y crear un archivo en otro lado con ese nombre y dato
	char numero[2];
	int opcion;
printf("Eliga la opción que desea\n");
printf("1ºCrear archivos\n");
printf("2ºTraspasar archivos a .bin\n");
 
fgets(numero,2,stdin);
sscanf(numero,"%d",&opcion);
 
switch(opcion){
 
case 1:{
 
///////////////	1º OPCION /////////////////////
char nombre[12];
char directorio[24];
char nombreedit[12];
char seguridad[100]="ordenacion\\algo.txt";
printf("ACTIVADA OPCION 1");
 
FILE* indice;
 
//FILE* archivo;
 
FILE* destino;
 
 
 
indice=fopen("lista.txt","rt");
do{
 
 
	fread(&nombre,sizeof(nombre),1,indice);
		for(int x=0;x<12;x++){
		if(nombre[x]=='\n'){
			nombre[x]=nombre[x+1];
		}
	}
	////////quita el punto aparte del final
	nombre[12]='\n';
	strcpy(nombreedit,nombre); ////copia el nombre
 
nombreedit[11]='t';
nombreedit[10]='x';
nombreedit[9]='t';
///lo cambia a .txt
 
 
	strcpy(directorio,"ordenacion\\");
	strcat(directorio,nombreedit);
printf("%s\n",directorio);
printf("%s\n",nombre);
//archivo=fopen(nombre,"rb");
	destino=fopen(directorio,"w+");
	fwrite(&nombre,sizeof(nombre),1,destino);
 
	fclose(destino);
}while(!feof(indice));
}
}
}

Ya di con la solucion usando strncpy en vez strcpy, no entiendo porque mi cabeza me da la solución cuando planteo la pregunta pero la cosa es que se salta nombres
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder