Hola, disculpen la molestia, pero me podrian ayudar a buscar un tuto que funcione en windows, tengo dev-c++ y quisiera un tuto de socket para hacer cliente y servidor mandado una variable e imprimirlo en la otra pc via internet
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ú
#include <stdio.h>
struct data{
int a;
int b;
};
void proceso(){
FILE *file;
data dat;
file = fopen("Prueba.txt", "r");
if(file == NULL)
printf("ERROR EN EL ARCHIVO\n\n");
fread(&dat,sizeof(dat),1,file);
while(!feof(file)){
printf("Resultado a: %d \nResultado b: %d\n\n", dat.a, dat.b);
fread(&dat,sizeof(dat),1,file);
}
fclose(file);
}
int main(){
FILE *file;
data dat;
file = fopen("Prueba.txt", "a");
if(file == NULL)
printf("ERROR EN EL ARCHIVO\n\n");
printf("NUMERO a: ");
scanf("%d", &dat.a);
printf("NUMERO b: ");
scanf("%d",&dat.b);
fwrite(&dat, sizeof(dat),1,file);
fclose(file);
printf("\n==============================================\n==============================================\n\n");
proceso();
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include <cctype>
/*====================
[Defines]
======================*/
#define cls system("CLS");
#define File_OpenRead doc=fopen("DB_","r");
#define File_OpenWrite doc=fopen("DB_","a+");
/*====================
[Funciones]
======================*/
void guardar();
void cargar();
void buscar();
/*====================
[Base de Datos]
======================*/
FILE *doc;
struct DATA{
char nombre[13];
int edad;
};
/*====================
[Programa]
======================*/
int main()
{
fclose(doc);
int selec;
printf("1.Guardar \n2.Cargar \n3.Buscar \n"); fflush(stdin);
selec = getch();
switch(selec){
case '1':{
cls
guardar();
break;
}
case '2':{
cls
cargar();
break;
}
case '3':{
buscar();
break;
}
}
cls
printf("[ESA OPCION NO EXISTE]\n");
main();
return 0;
}
void guardar()
{
DATA e;
int selec;
File_OpenWrite // abriendo el archivo.
if(doc == NULL)
{
cls
printf("[ERROR EN EL ARCHIVO]\n");
main();
}
do{
cls
printf("Ingrese su nombre: "); fflush(stdin);
gets(e.nombre);
for (char i = 0; i < strlen(e.nombre) ; i++){
e.nombre[i] = tolower(e.nombre[i]);
}
printf("Ingrese su edad: "); fflush(stdin);
scanf("%d", &e.edad);
printf("\n\n---Nombre:%s \n---edad: %d\n", e.nombre, e.edad);
printf("\n\n1.desea finalizar el registro? \n2.Registrar otro usuario? \nElija una opcion porfavor: "); fflush(stdin);
selec = getch();
fwrite(&e, sizeof(e),1,doc);
}while(selec == '2');
fclose(doc);
cls
main();
}
void cargar()
{
File_OpenRead
DATA e;
if(doc == NULL)
{
cls
printf("[ERROR EN EL ARCHIVO]\n");
main();
}
fread(&e, sizeof(e),1,doc);
while(!feof(doc)){
printf("\nNombre.....: %s", e.nombre);
printf("\nEdad.........: %d", e.edad);
fread(&e, sizeof(e),1,doc);
}
printf("\n\nPrecione una tecla para volver...");
fclose(doc);
getch();
cls
main();
}
void buscar()
{
File_OpenWrite
DATA e;
char b_nombre[13];
if(doc == NULL)
{
cls
printf("[ERROR EN EL ARCHIVO]\n");
main();
}
cls
printf("Ingrese el nombre a buscar: \n");fflush(stdin);
gets(b_nombre);
for (char i = 0; i < strlen(b_nombre) ; i++){
b_nombre[i] = tolower(b_nombre[i]);
}
cls
while(strcmp(e.nombre, b_nombre)){
fread(&e, sizeof(e),1,doc);
if(feof(doc)){
cls
printf("[NO SE ENCONTRARON RESULTADOS]\n");
main();
}
}
printf("\nNombre.....: %s", e.nombre);
printf("\nEdad.........: %d\n", e.edad);
printf("\n\nPrecione una tecla para volver...");
fclose(doc);
getch();
cls
main();
}
void eliminar()
{
File_OpenRead
FILE *d_temp; d_temp = fopen("DB_TEMP", "w");
DATA e;
int b_cedula;
if(doc == NULL)
{
cls
printf("[ERROR EN EL ARCHIVO]\n");
main();
}
cls
printf("Escriba el numero de cedula del usuario que desea eliminar: "); fflush(stdin);
scanf("%d", &b_cedula);
cls
fread(&e, sizeof(e),1,doc);
while(!feof(doc)){
if((e.cedula == b_cedula)==0){
fwrite(&e, sizeof(e),1,d_temp);
}else{
printf("Estos datos han sido eliminados...");
printf("\nNombre.....: %s", e.nombre);
printf("\nCedula.....: %d", e.cedula);
printf("\nEdad.......: %d\n", e.edad);
}
fread(&e, sizeof(e),1,doc);
}
printf("\n\nPrecione una tecla para volver...");
fclose(d_temp);
fclose(doc);
remove("DB_");
rename("DB_TEMP", "DB_");
getch();
cls
main();
}
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
/*====================
[Defines]
======================*/
#define cls system("CLS");
#define File_OpenRead doc=fopen("DB_","r");
#define File_OpenWrite doc=fopen("DB_","a+");
/*====================
[Funciones]
======================*/
void guardar();
void cargar();
/*====================
[Base de Datos]
======================*/
FILE *doc;
struct DATA{
char espacio;
char nombre[32];
int edad;
int cedula;
};
/*====================
[Programa]
======================*/
int main()
{
int selec;
printf("1.Guardar dato \n2.Cargar datos\n"); fflush(stdin);
selec = getch();//scanf("%d", &selec);
if(selec == '1'){
guardar();
}else if(selec == '2'){
cls
cargar();
}else{
cls
printf("esa opcion no existe\n");
main();
}
return 0;
}
void guardar()
{
cls
DATA e;
int option;
File_OpenWrite // abriendo el archivo.
do{
cls
e.espacio = '\n';
printf("Ingrese su nombre: "); fflush(stdin);
gets(e.nombre);
printf("Ingrese su cedula: "); fflush(stdin);
scanf("%d", &e.cedula);
printf("Ingrese su edad: "); fflush(stdin);
scanf("%d", &e.edad);
printf("\n\n---Nombre:%s \n---Cedula:%d \n---Edad:%d ", e.nombre, e.cedula, e.edad);
printf("\n\n1.Desea ingresar otro usuario? \n2.desea finalizar el registro? \nElija una opcion porfavor: "); fflush(stdin);
option = getch();//scanf("%d", &option);
fwrite(&e, sizeof(e),1,doc);
}while(option == '1');
fclose(doc); // cerrando el archivo.
cls
main();
}
void cargar()
{
int option;
DATA e;
File_OpenRead
//char palabra;
if(doc == NULL)
{
cls
printf("[ERROR EN EL ARCHIVO]\n");
main();
}
printf("\t--------Datos Cargados--------\n");
fread(&e, sizeof(e),1,doc);
while(!feof(doc))
{
printf("\n");
printf("\nNombre...: %s",e.nombre);
printf("\nCedula...: %d",e.cedula);
printf("\nEdad.....: %d",e.edad);
fread(&e, sizeof(e),1,doc);
}
fclose(doc);
getch();
cls
main();
}
Cita de: YreX-DwX en 4 Abril 2019, 22:00 PM
Entonces no tiene ningún sentido que guardes los datos en la matriz usando <strcpy()> como has hecho.
Lo que tienes que hacer es: de un fichero que ya tiene las variables guardadas con su valor y todo, meterlas en una matriz. Te dejo un ejemplo mejor que ir caracter a caracter...
#define MAX_SIZE 20
int main(){
FILE *fichero;
fichero = fopen("fichero.txt", "r");
char registro[MAX_SIZE][MAX_SIZE];
int num_variables = 0; // numero de variables/lineas del fichero
while(!feof(fichero))
fgets(registro[num_variables++], MAX_SIZE, fichero);
num_variables--;
}
Luego tienes que pedir una palabra/variable y buscar en la matriz si está y si está devolver el valor que está a la derecha del "=". Mírate las funciones de la librería <string.h> ya que son de utilidad para este ejercicio.
PD: Te recomiendo pedir la palabra usando la función <fgets()> (tendrás que hacer una pequeña modificación para quitar el ENTER que le des al terminar de escribir la palabra).
Vete probando lo que te comento y cuando te quedes bloqueado, intento ayudarte más específicamente ya que ahora estoy ocupado. Suerte