Я пытаюсь получить данные из моего массива arr для печати в файл "out.txt". Программа была в состоянии сделать это раньше, но по какой-то причине теперь вообще не печатает и даже после отмены предыдущей версии ничего не печатает.
У меня есть код, который подтверждает, что файл успешно открыт и данные в массиве верны. Все остальные функции работают правильно.
int main () {
FILE *inFile;
FILE *outFile;
int n = 0;
inFile = fopen("in.txt", "r");
if (inFile == NULL) {
printf("File failed to open");
}
outFile = fopen("out.txt", "w");
if (outFile == NULL) {
printf("outFile failed to open");
}
fscanf(inFile, "%d", &n);
struct Point* arr;
arr = (struct Point*) malloc (n * sizeof(struct Point));
int i = 0;
while (i<n){
fscanf(inFile, "%d %d", &arr[i].x, &arr[i].y);
i++;
}
mergeSort(arr, 0, n-1);
fprintf(outFile, "%d\n", n);
for (int i = 0; i<n; i++){
printf("%d %d\n", arr[i].x, arr[i].y);
}
for (int i = 0; i<n; i++){
fprintf(outFile, "%d %d\n", arr[i].x, arr[i].y);
}
printf("\nSorted and output written to File\n");
int searchx, searchy;
printf("Please enter a point to search for: ");
scanf("%d %d", &searchx, &searchy);
int result = 0;
result = binarySearch(arr, searchx, searchy,0, n);
if (result == -1) {
printf("Point not found");
return 0;
}
else {
printf("Point found in element %d", result);
}
fclose(inFile);
fclose(outFile);
}
ожидаемые результаты с вводом образца.
In.txt:
5
6 3
4 6
2 5
2 7
5 2
out.txt:
5
2 5
2 7
4 6
5 2
6 3
Фактические результаты:
out.txt:
//Blank