我正在尝试获取我的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
答案 0 :(得分:0)
该代码在我的Mac上可以正常运行,至少在带有mergeSort注释的情况下。您不是在Windows上运行,是吗?如果是这样,该文件可能看起来为空,因为它缺少回车符。