Miércoles 20 de Noviembre de 2024, 14:35
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
Re: ayuda para escribir caracteres
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Re: ayuda para escribir caracteres (Leído 1733 veces)
novatilla
Nuevo Miembro
Mensajes: 1
Re: ayuda para escribir caracteres
«
en:
Lunes 10 de Marzo de 2003, 19:03 »
0
hola a todos
tengo un pequeño problema con un ejercicio de C en linux
abro un fichero, lo leo pero a la hora de escribir los caracteres me dice que si kiero paella o bokerones.....
lo leo con read pq tengo k utilizar descriptores de ficheros
lo he intentao con printf, fprintf.... %s. %c, %d....pero nada....lo mas que he hecho es k con %d me devuelva un 1
ayuda amigos.......ahhhhhhhhhh
Tweet
Quoyle
Nuevo Miembro
Mensajes: 16
Re: ayuda para escribir caracteres
«
Respuesta #1 en:
Lunes 10 de Marzo de 2003, 20:09 »
0
Hola,:) con lo poco que cuentas en un poco difícil ayudarte, ¿por qué no envías el código, o la parte que no te funciona del mismo?
Un saludo, esperamos poder ayudarte.
:alien:
Actual Generation oOo Quoyle oOo Remember: Free your mind
borca
Miembro activo
Mensajes: 60
Re: ayuda para escribir caracteres
«
Respuesta #2 en:
Martes 11 de Marzo de 2003, 19:55 »
0
estas seguro que no hay ningun problema cuando abres del fichero??
recuerda definir un puntero tipo fichero
par ex:
#include <stdio.h>
FILE *fd;
fd = fopen( "nomFichero", modoAcces);
/* modos de acceso:
r : lectura (debe existir)
w: escritura
a: fichiero a añadir (debe existir)
*/
espero que te sirva de ayuda :p
JuanK
Miembro de ORO
Mensajes: 5393
Nacionalidad:
Re: ayuda para escribir caracteres
«
Respuesta #3 en:
Viernes 14 de Marzo de 2003, 21:01 »
0
ok, a continuacio tienes un ejemplo de escritura de variables a un archivo en lenguaje c, utilizando descriptores de archivo.
El programa es compilado en el djggp, en otros copiladores probablemante tengan que modificar las siguientes estas lineas:
Borrar:
#include<pc.h>
ScreenClear();
ScreenSetCursor(0,0);
en algunos casos deberan modificar los flags de la funcion open
Modificar:
archivo=open(nombrearchivo,O_RDWR|O_TEXT|O_CREAT
))
ya que no todos los compiladores utilizan los mismos.
Código: Text
/*Trabajo con datos capturados desde teclado y archivos.
**utilizando descriptores de archivo
**Elaborado por Juan Carlos Ruiz Pacheco.
**Compilado con el djgpp 14-03-2003
**[email]juank@007mundo.com[/email]
*/
#include<stdio.h>
#include<pc.h>
#include <fcntl.h>
#include <sys/stat.h>
int main()
{
int archivo=NULL;
char caracter=NULL;
char cadena[255],nombrearchivo[255], aux[255];
int dato=NULL;
FILE *f=NULL;
ScreenClear();
ScreenSetCursor(0,0);
memset(cadena,' ',sizeof(cadena));
memset(nombrearchivo,' ',sizeof(cadena));
memset(aux,' ',sizeof(cadena));
printf("Introduzca el nombre del archivo:");
gets(nombrearchivo);
if((archivo=open(nombrearchivo,O_RDWR|O_TEXT|O_CREAT))>=0)
{
printf("annnIntroduzca un solo caracter para escribir en el archivo:");
caracter=getchar();
strcpy(aux,"El caracter digitado:");
write(archivo,aux,strlen(aux));
write(archivo,&caracter,sizeof(caracter));getc(stdin);
memset(aux,' ',sizeof(cadena));
printf("nIntroduzca un entero para escribir en el archivo:");
scanf("%d",&dato);
strcpy(aux,"nEl entero digitado:");
write(archivo,aux,strlen(aux));getc(stdin);
write(archivo,&dato,sizeof(dato));
printf("nIntroduzca una cadena escribir en el archivo:");
gets(cadena);
strcpy(aux,"nLa cadena digitada:");
write(archivo,aux,strlen(aux));
write(archivo,cadena,strlen(cadena));
f=fdopen(archivo,"at+");
fflush(f);
fclose(f);
close(archivo);
printf("nArchivo %s cerrado.",nombrearchivo);
printf("nPresione Enter para salir");
getch();
return(int) 1;
}
else
{
perror("nError al abrir el archivo.nPresione enter para terminar.");
getch();
return (int)0;
}
}
Anexo ejecutable , por si alguien no puede compilar el codigo.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io
JuanK
Miembro de ORO
Mensajes: 5393
Nacionalidad:
ayuda para escribir caracteres
«
Respuesta #4 en:
Lunes 17 de Marzo de 2003, 13:54 »
0
te anexom el mismo programa pero manejando apuntadores, esto para que a todos les quede claro la diferencia:
Código: Text
/*Elaborado por Juan Carlos Ruiz Pacheco.
**Trabajo con datos capturados desde teclado y archivos.
**Compilado con el djgpp 13-03-2003
**[email]juank@007mundo.com[/email]
*/
#include<stdio.h>
#include<pc.h>
int main()
{
FILE *archivo=NULL;
char caracter=NULL;
char cadena[255],nombrearchivo[255], aux[255];
int dato=NULL;
ScreenClear();
ScreenSetCursor(0,0);
memset(cadena,' ',sizeof(cadena));
memset(nombrearchivo,' ',sizeof(cadena));
memset(aux,' ',sizeof(cadena));
printf("Introduzca el nombre del archivo:");
gets(nombrearchivo);
if((archivo=fopen(nombrearchivo,"at+"))!=NULL)
{
printf("annnIntroduzca un solo caracter para escribir en el archivo:");
caracter=getchar();
strcpy(aux,"nEl caracter digitado:");
fwrite(aux,strlen(aux),1,archivo);
fputc((int)caracter,archivo);
memset(aux,' ',sizeof(cadena));
printf("nIntroduzca un entero para escribir en el archivo:");
scanf("%d",&dato);
strcpy(aux,"nEl entero digitado:");
fwrite(aux,strlen(aux),1,archivo);
fputc(dato,archivo);
printf("nIntroduzca una cadena escribir en el archivo:");getc(stdin);
gets(cadena);
strcpy(aux,"nLa cadena digitada:");
fwrite(aux,strlen(aux),1,archivo);
fputs(cadena,archivo);
fflush(archivo);
fclose(archivo);
printf("nArchivo %s cerrado.",nombrearchivo);
printf("nPresione Enter para salir");
getch();
return(int) 1;
}
else
{
perror("nError al abrir el archivo.nPresione enter para terminar.");
getch();
return (int)0;
}
}
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
Re: ayuda para escribir caracteres