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ú

Temas - elWartix

#1
Programación C/C++ / DUDA SOBRE FICHEROS EN C
10 Marzo 2016, 19:51 PM
Hola, tengo una duda, y llevo toda la tarde rompiéndome la cabeza y sigo sin encontrar la solución.
Tengo un programa que lo que hace es:

Te pide por teclado el nombre de la persona a la que quieres buscar, esto lo guarda en un string y seguidamente accede a un fichero y compara el nombre introducido por todo el fichero hasta encontrar el nombre, una vez que encuentra el nombre, imprime este por pantalla, y seguidamente lo que tendría que hacer es hacer un salto de linea en el fichero y leer la siguiente linea, debido a que en la siguiente linea es donde tengo el numero de telefono de cada nombre, pero no se como hacer ese salto de linea con el cursor para leer la siguiente linea.

Alguien sabe?

void consultar(){

char buscador[100];
char temp[100];

f = fopen("Registro.txt","r");

if(f == NULL){
printf("Error al abrir el fichero");
exit(2);
}

fflush(stdin);
printf("Escribe el nombre del contacto: \n");
fgets(buscador,100,stdin);
cambio2(buscador);



while(!feof(f)){

fflush(stdin);
fgets(temp,100,f);
cambio3(temp);


if(stricmp(buscador,temp) == 0){

printf("%s  \n", temp);
  //salto de linea en fichero
  //leer siguiente linea

 
}


}


Aquí esta el código de la función.

y aquí dejo una captura de pantalla del fichero para que vean como esta estructurado y porque quiero hacer el salto de linea:

https://gyazo.com/1e4567feb3dc6c84d570828ac0b7b0d6



Muchas Gracias.
#2
Buenas tengo un problema.

estoy haciendo el siguiente programa y al llegar a la funcion alta no me funciona fgets para coger el string y luego poder pasarlo a un string dinamico, utilizo fgets y no gets para que si se escribe mas de la capacidad del string que no se sobrescriban datos.

Os dejo aquí el código a  ver si podeis ayudarme, está sin acabar, pero ya tengo ese problema. Gracias

//Proyecto Agenda.

#include <stdio.h>
#include <stdlib.h> //Por si utilizamos memoria dinamica para que sea mais rapido/eficiente
#include <string.h>

typedef struct{
char *nombre; //memoria dinamica para ahorrar espacio
int numero;


}datos;



void alta();
void baja();
void consultar();


int main(){

char aux[100];
int selector;

do{
printf("==========================");
printf("           MENU          ");
printf("==========================");
printf("\n");
printf("\n");
printf("Eliga una de las siguientes opciones: ");
printf("\n");
printf("\n");
printf("1- Dar de alta un contacto\n");
printf("2- Dar de baja un contacto\n");
printf("3- Consultar contactos\n");

fflush(stdin);      //limpiamos buffer por si se introduce una frase para que no se cree un bucle infinito
scanf("%i",&selector);


system("cls");  //borrar pantalla

}while(selector < 1 || selector > 3);


switch(selector){

case 1:   alta();               break;
case 2:   baja();             break;
case 3:   consultar();      break;

default: printf("ERROR"); //No es necesario este default.
}


system("pause");
return 0;
}

void alta(){

char auxiliar [100];
printf("Introduce el nombre: \n");
fgets(auxiliar,100,stdin);


}

void baja(){


}

void consultar(){


}