/*
* Name: Adam Chubbuck
* Date: 1/12/2014
* Class: CSC-1720
* Comment: Assignment #1 (Load-Sort-Print) v1
*/
#include
int load(char fileName[], int array[]);
int sort(int array[], int length);
int print(int length, int array[]);
int main() {
char fileName[100];
int numList[300];
int length;
printf("File Name: ");
scanf("%s", &fileName);
length = print(sort(numList,load(fileName, numList)), numList);
printf("\nLength: %i\n", length);
printf("Finished execution.\n");
return 0;
}
int load(char fileName[], int array[]) {
FILE *input = fopen(fileName, "r");
int length = 0, i = 0;
if(input == NULL) {
fprintf(stderr, "Error accessing file.\n");
} else {
while(fscanf(input, "%i", &array[i]) != EOF) {
i++;
length++;
}
}
fclose(input);
return length;
}
int sort(int array[], int length) {
int a, b, c;
for (a = 0 ; a < (length - 1); a++) {
for (b = 0 ; b < length - a - 1; b++) {
if (array[b] > array[b+1]) {
c = array[b];
array[b] = array[b+1];
array[b+1] = c;
}
}
}
return length;
}
int print(int length, int array[]) {
int i;
printf("\n[NUMBERS]\n\n");
for (i = 0; i< length; i++) {
printf("[N]%i\n", array[i]);
}
return length;
}
我已经通过对这个问题类似主题的阅读和他们建议我从scanf函数删除符号语句,但是当我这样做并使用I/O重定向到文件时,它似乎陷入了一个无限循环,暗示它无法为文件名字符数组赋值。
./a.out output.txt
+0
删除&。这是一个编译器错误,如果你删除它,它会被解决。另一件事是因为你有多个错误... –