Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - fafafa01

#71
Muchas gracias, creo que el error entonces seria que use el "r+". saludos.


Cita de: Kaxperday en 16 Mayo 2016, 15:06 PM
Buenas, si he entendido bien lo que quieres es leer el contenido del archivo y sustituir su contenido por el mismo pero cambiando solo las comas por puntos.

Con el código de MAFUS debería bastar, porque el fputc() sobreescribe el valor que se encuentra en esa posición. Cada fgetc() mueve el puntero una posición adelante para continuar leyendo, cuando encuentras una ',' usas fseek(archivo, -1, SEEK_CUR) para que vuelva atrás y no pase al siguiente caracter y entonces con fputc('.',archivo), escribes '.' en la posición de la ',' por lo que quedaría sobreescrita.

Si es un fichero de texto entonces no lo abras como binario usa "rt" en vez de "r+".

Un saludo.


#include <stdio.h>
#include <stdlib.h>

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

archivo=fopen("varx.txt","rt");
c=fgetc(archivo);
while (c != EOF) {
if (c==',') {
              fseek(archivo, -1, SEEK_CUR);
              fputc('.', archivo);
}
c=fgetc(archivo);
}
fclose(archivo);
}





tampoco me anda   :( :( :( :(

Cita de: fafafa01 en 16 Mayo 2016, 17:02 PM
Muchas gracias, creo que el error entonces seria que use el "r+". saludos.


#72
cambiar la coma por el punto.

Cita de: fary en 16 Mayo 2016, 09:39 AM
¿Cual se supone que es la diferencia despues de modificar el archivo?


#73
No logro poder modificarlo.
#74
Hola como bien dice el titulo, tengo un archivo .txt así:
45,678
67,890

y yo quiero que queden así:
45.678
67.890

mi idea es, aprovechando que se que el caracter 8 en ascii es retroceso , el 44 la coma y el 46 el punto hacer esta función:

#include <stdio.h>
#include <stdlib.h>

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

archivo=fopen("varx.txt","r+");
c=fgetc(archivo);
while (c != EOF) {
if (c==44) {
fputc(8,archivo);
fputc(46,archivo);
}
c=fgetc(archivo);
}
fclose(archivo);
}


el problema es que el archivo no se modifica, si alguien sabe que es lo que esta mal en el código y me lo dice me serviría de mucho, saludos.
#75
ahí corregí el código, me faltaba un paréntesis:

lo pude arreglar asiendo esto:


#include <stdio.h>

void funcion1(int *, int *,int *);
void funcion2(int *,int *,int *);

void main(void) {
int a=b=c=0;
funcion1(&a,&b,&c);
}



funcion1 (int *a,int *b, int *c) {
.
.
.
funcion2(&*a,&*b,&*c);
.
.
}


 
funcion2(int *a, int *b, int *c) {
.
.
.
}



pero no entiendo muy bien:

si yo quisiera escribir 2 printf en la función 1, después de haber invocado la función 2 ¿que diferencias hay entre los dos printf del codigo?


#include <stdio.h>

void funcion1(int *, int *,int *);
void funcion2(int *,int *,int *);

void main(void) {
int a=b=c=0;
funcion1(&a,&b,&c);
}

funcion1 (int *a,int *b, int *c) {
.
.
.
funcion2(&*a,& *b,& *c);
printf(" %d  %d  %d ",*a,*b,*c);
printf(" %d  %d  %d ",*(*a),*(*b),*(*c));
.
}

funcion2(int *a, int *b, int *c) {
.
.
.
}
#76
sisi funciono perfecto, gracias.
#77
Buenos días, como dice el titulo, hice un programa desde donde pasas la dirección de la variable como parámetros en una función, y dentro de esa función, los parámetros se van a usar de nuevo como  parámetros en otra función.

mi problema es que el compilador me dice que tiene un error y creo que es por la sintaxis:

acá va un ejemplo de la sintaxis:


#include <stdio.h>

void funcion1(int *, int *,int *);
void funcion2(int *,int *,int *);

void main(void) {
int a=b=c=0;
funcion1(&a,&b,&c);
}

funcion1 (int *a,int *b, int *c) {
.
.
.
funcion2(*a,*b,*c);
.
.
}

funcion2(int *a, int *b, int *c) {
.
.
.
}


saludos y gracias.
#78
muchísimas gracias... otra cosa:
me podrías explicar estas lineas de código, no las entiendo:


int main ( int argc, char **argv )




Cita de: AlbertoBSD en 11 Mayo 2016, 14:27 PM
Hola estas escribiendo los datos en formato raw o binario oo cual es bueno cuando lo lees desde otro programa igual. pero no recuerdo si matlab necesira los numeros en formato ascii.. esto es el numero como cadena 10.527388  y demas.

Para hacer esto debes de cambiar el fwrite por fprintf y imprimirlos de uno en uno dentro del ciclo donde creas los numeros y mas o menos asi

fprintf(fichero,"%f\n",x);
En dado caso ya no necesitarias el arreglo ademas de abrir el archivo antes de que empieze el ciclo.
#79
Hola como dice el titulo, lo que quiero hacer es escribir un archivo  .txt o .dat con números  los números que se escriben en el archivo se sacan de un arreglo previamente cargado, el problema es que no se si mi archivo esta escribiendo bien los datos porque matlab no me lo abre.

a continuación mi código:


#include <stdio.h>
#include <math.h>
#define PI   3.141592653589
void archivo_matlab(float,float,float,float,float);

void main (void) {
archivo_matlab(1,2,3,4,5);
}

void archivo_matlab(float A,float a,float h,float B,float b) {
float arre1[151],t=0,x=0,y=0;
int i=0;
FILE *fichero;
while (t<=2*PI){
x=A*sin(a*t+h);
arre1[i]=x;
t=t+PI/75;
i++;
}
fichero=fopen("datos1.dat","w");
fwrite(arre1,sizeof(float),151,fichero);
fclose(fichero);
}



#80
Hola, hice un código para contar los días que hay entre dos fechas, pero creo que no es tan eficiente. mi duda es si hay alguna función predefinida para sumar restar o trabajar con fechas. Gracias y saludos.