#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct {     int key;     char name[20];     int grade; }element; void p1(); void insert(element e, element a[], int i); void insertionSort(element a[], int n); int main() {     p1();     return 0; } void p1() {     FILE* f = fopen("input.txt", "r");     if (!f) {         fprintf(stderr, "file doesn't exist\n");         exit(EXIT_FAILURE);     }     int n; element* e;     fscanf(f, "%d", &n);     e = (element*)malloc(sizeof(element)*(n + 1));     char name[20];     printf("<<<<<<<<<< Input List >>>>>>>>>>\n");     for (int i = 1;i <= n;i++) {         fscanf(f, "%d %s %d", &e[i].key, name, &e[i].grade);         strcpy(e[i].name, name);         printf("( %d, %s, %d )\n", e[i].key, e[i].name, e[i].grade);     }     fclose(f);     insertionSort(e, n);     printf("\n<<<<<<<<<< Sorted List >>>>>>>>>>\n");     for (int i = 1;i <= n;i++)         printf("( %d, %s, %d )\n", e[i].key, e[i].name, e[i].grade); } void insert(element e, element a[], int i) {     a[0] = e;     while (e.key < a[i].key) {         a[i + 1] = a[i];         i--;     }     a[i + 1] = e; } void insertionSort(element a[], int n) {     int j;     for (j = 2;j <= n;j++) {         element temp = a[j];         insert(temp, a, j - 1);     } }

입력 텍스트파일은 맨윗줄에 총 몇개 element 입력받을건지 있고 그다음줄부터 7 엄준식 99 이런식으로 key name grade 필드변수 써져있는데 문자열이 디버깅해보니까 계속 문자열에 잘못된 문자가 있습니다 라고 뜨면서 글자가 깨져버리는데 왜이런것인..??