C/Visual C - Como crear un archivo txt en C

 
Vista:
sin imagen de perfil

Como crear un archivo txt en C

Publicado por Ana (1 intervención) el 10/07/2018 04:57:38
tengo que crear un archivo txt en c
peor tengo problemas
Porque lee los datos, pero al momento de guardarlos, el programa deja de funcionar

Mi problema es en la parte del caso 1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#include<stdio.h>
 
#define n 100
 
FILE *registro;
 
FILE *receta;
void doctor()
{
	int m2, ci[n],clav;
	char no[n][n],ape[n][n], diagnostico[n];
	int nest,nnot,c=1,i=0;
	float precio[n],total1=0, totalf=0,sum,cant[n],iva,to;
	system("COLOR 3F");
	registro = fopen ("registro.txt","a");
	printf("Ingrese n%cmero de identificaci%cn\n", 163,162);
	scanf ("%i",&ci[n]);
	fprintf (registro,"Numero de identificaicion : %i\n",ci[n]);
	clav= ci[n]/1000;
	if (clav==1)
	{
		printf("\n");
		printf("BIENVENIDO DOCTOR/A\n");
		printf("\n");
		printf("Ingrese el nombre\n");
		scanf ("%s",&no[n]);
		printf("Ingrese el apellido\n");
		scanf ("%s",&ape[n]);
		fprintf(registro,"Nombre:%s\n",no[n]);
	  	fprintf(registro,"Apellido:%s\n",ape[n]);
		printf("Usted desea: \n"); 	/* Otro menu 1.Ingresar receta 2.Medicamentos disponibles  */
		printf("1. Ingresar receta\n");
		printf("2. Revisar medicamentos disponibles\n");
		scanf("%i",&m2);
		system("cls"); //para limpiar la pantalla 
		printf("\n"); /* no hay forma directa de borrar la pantalla con C estandar */
		switch (m2)
		{
			case 1:
			{
					receta = fopen ("receta.txt", "a");
					printf("Escriba el diagnostico: \n");
					scanf("%s", &diagnostico[n]);
					fprintf (receta, "El diagnostico es: %s\n", diagnostico[n]);
 
				}
			break;
			case 2:	revisar();break;
			default:
			printf("Opcion incorrecta\n");
		}
	}
	else
	printf("Usted no tiene permitido ingresar a esta pesta%ca.\n", 164);
	fclose (receta);
	fclose (registro);
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Sergio
Val: 4
Ha aumentado su posición en 12 puestos en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

Como crear un archivo txt en C

Publicado por Sergio (2 intervenciones) el 19/07/2018 19:48:17
1
scanf("%s", &diagnostico[n]);

Tu estás diciendo que lea dianostico en la posición n (100), osea fuera del array.

y con el fprintf lo mismo, quita el [n] de la variable, porque estas accediendo a una posición que no existe.


y no uses
1
scanf(%s,&variable)

usa
1
gets(tuarreglo)

si vas a leer oraciones que contengan espacios.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar