elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 [7] 8 9
61  Programación / Programación C/C++ / guardar lo realizado en una lista en: 28 Mayo 2016, 23:51 pm
Hola, como bien dice el titulo, cual es la forma de guardar datos de una lista, es decir, que cada vez que abro el programa no tenga que crear toda la lista de nuevo y se guarden los datos(me imagino que nunca le tengo que liberar la memoria heap que le pedí al sistema operativo). ¿por donde se empieza?

gracias y saludos.
62  Programación / Programación C/C++ / feof y fscanf en: 21 Mayo 2016, 02:48 am
Hola mi duda es si se puede usar la función feof como condición en un while al leer un archivo con la función fscanf.

el pseudocodigo seria:
Código
  1. // despues de hacer el protocolo de abrir el archivo y demas
  2.  
  3.  
  4. while (feof(archivo)){  //como feof devuelve 0 si encontró feof se podría usar así creo yo
  5. fscanf(archivo,"%d",&(arreglo[i]));
  6. i++;
  7. }
  8.  
  9.  
63  Programación / Programación C/C++ / Re: Cambiar coma por punto en un archivo .txt en: 17 Mayo 2016, 15:32 pm
pone números como vos decís:" N N-1 N ", pero no se detiene nunca.
empieza con "11 10 11"
64  Programación / Programación C/C++ / Re: Leer un archivo de texto con fscanf y ponerlo en un arreglo de float. en: 17 Mayo 2016, 15:25 pm
gracias funciono, una pregunta, mi profesor me había dicho que en un arreglo era lo mismo esto que esto:

arreglo[0] <--> &(arreglo[0])

¿es verdad?
65  Programación / Programación C/C++ / Re: Cambiar coma por punto en un archivo .txt en: 17 Mayo 2016, 14:37 pm
windows uso

Extraño. ¿Usas Windows, Linux?
66  Programación / Programación C/C++ / Leer un archivo de texto con fscanf y ponerlo en un arreglo de float. en: 17 Mayo 2016, 06:34 am
Buenas, hice un código que pretende leer de un archivo de texto con scanf las primeras 20 lineas y ponerlo en un arreglo, la cosa es que no funciona.

mi código:

Código:
#include <stdio.h>

void copiar(float arreglo[], int cantidad);

void main (void) {
float datalog[200];
int i=0;
copiar(datalog,20);
while (i<=20) {
printf(" %f \n",datalog[i]);
i++;
}
}

void copiar(float arreglo[],int cantidad) {
int i=0;
FILE *archivo;
archivo=fopen("datalog2","r");
if( archivo )
      printf( "existe (ABIERTO)\n" );
   else {
      printf( "Error (NO ABIERTO)\n" );
}
while (i<=cantidad){
fscanf(archivo," %f ",arreglo);
i++;
}
fclose(archivo);
}

¿hay algo mal en la sintaxis? (el archivo no aparece como .txt ni como .dat ni nada, asique le puse solo el nombre)

saludos.
67  Programación / Programación C/C++ / Re: Cambiar coma por punto en un archivo .txt en: 17 Mayo 2016, 03:05 am
con tu codigo
esta así:
0.0000
77.725
146.327
199.039
230.767
235.482
215.951
171.428
108.204
34.306
-44.094
-118.699
-178.576


queda así:
0,0000
77.,725
146.,327
199.,039
230.,767
235.,482
215.,951
171.,428
108.,204
34.,306
-44.,094
-118.,699
-178.,576

y en las ultimas lineas simplemente no modifica nada

tengo que aclarar que el archivo no es .txt sino que es un archivo de texto que no tiene especificado el tipo de archivo que es. obviamente no le puse "asd.txt" sino simplemente "asd" (aunque no se si esta bien).
68  Programación / Programación C/C++ / Re: Cambiar coma por punto en un archivo .txt en: 17 Mayo 2016, 02:18 am
otra duda, al final el código lo tuve que cambiar, porque solo en la primer linea me imprimía bien, quedaba así:
12,345
23.,456
56.,678


Código:
#include <stdio.h>
#include <stdlib.h>

void main (void) {
FILE *archivo;
int c,i;

archivo=fopen("datalog1","r+");
if (archivo == NULL){

printf("\nError de apertura del archivo. \n\n");
}
else {
c=fgetc(archivo);
i=1;
while (c != EOF) {
if ((c==',') && (i==1)){
i=2;
    fseek(archivo, -1, SEEK_CUR);   
fputc('.',archivo);
fflush(archivo);
}
else if ((c==',') && (i==2)) {
fseek(archivo, -2, SEEK_CUR);   
fputc('.',archivo);
fflush(archivo);
}
c=fgetc(archivo);
}
}
fclose(archivo);
}

igualmente tampoco anda a la perfección, los últimos números tampoco los imprime bien, no se si sera porque el archivo es muy grande o que (el archivo es de 1600 lineas aprox)
69  Programación / Programación C/C++ / Re: Cambiar coma por punto en un archivo .txt en: 17 Mayo 2016, 01:39 am
muchas gracias, me funciono perfecto.

¿sabes porque es necesario colocar fflush? estuve viendo y esta función lo que hace es borrar el buffer creo.

¿si la lectura y escritura es sobre una pantalla también se debe hacer?

 y la ultima, ¿porque, en el ejemplo que vimos  hay que retroceder un byte de la posición actual? si técnicamente el puntero esta apuntando al caracter que queremos cambiar.

saludos.

Coloca fflush después de una operación de escritura si luego vas a hacer otra lectura. Además, es preferible que utilices r+, pues la 't' no siempre stá soportdada, y en este caso, realmente no va a cambiar nada.

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main() {
  5. FILE *archivo;
  6. int c;
  7.  
  8. archivo=fopen("asd.txt","r+");
  9. if (archivo == NULL){
  10. printf("\nError de apertura del archivo. \n\n");
  11. }
  12. else {
  13. c=fgetc(archivo);
  14. while (c != EOF) {
  15. if (c==',') {
  16. fseek(archivo, -1, SEEK_CUR);
  17. fputc('.',archivo);
  18. fflush(archivo);
  19. }
  20. c=fgetc(archivo);
  21. }
  22. }
  23. fclose(archivo);
  24. }
70  Programación / Programación C/C++ / Re: Cambiar coma por punto en un archivo .txt en: 16 Mayo 2016, 21:32 pm
no me tira ningún error, es como que se cuelga y tengo que cerrar el programa con ctrl+c.

acá el código:

Código:
#include <stdio.h>
#include <stdlib.h>

void main (void) {
FILE *archivo;
int c;

archivo=fopen("varx.txt","rt");
if (archivo == NULL){

printf("\nError de apertura del archivo. \n\n");
}
else {
c=fgetc(archivo);
while (c != EOF) {
if (c==',') {
    fseek(archivo, -1, SEEK_CUR);               
fputc('.',archivo);
}
c=fgetc(archivo);
}
}
fclose(archivo);
}
Páginas: 1 2 3 4 5 6 [7] 8 9
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines