У вашего кода много проблем.
1) Ваши массивы не инициализированы, что является верным способом получения нечитаемого вывода и потенциально очень плохих ошибок.
2) Некоторые переменные в вашем коде не объявлены. В будущем, пожалуйста, опубликуйте код ТОЧНО, как и для вас, чтобы его можно было сразу скомпилировать. Испытанный и верный способ не получить никаких ответов на ваши вопросы - это опубликовать код, который необходимо существенно отредактировать, прежде чем он даже скомпилируется: люди обычно просто говорят: «Винт это, не стоит», и вы действительно не можете их винить.
3) Ваш способ чтения файлов неэффективен с точки зрения структуры кода с точки зрения производительности. Лучший способ чтения файлов - это прочитать их за один раз, а затем проанализировать, чтобы получить из них то, что вам нужно.
4) Ваши printfs в последнем цикле for абсолютно неверны, что странно, потому что в закомментированных printfs выше, а также в sscanf вы, похоже, понимаете, как работает форматная строка. Я думаю, что это ошибка не очень внимательно читать ваш код. Пожалуйста, сделайте это с этого момента.
Вот полная программа, которая, я думаю, примерно соответствует вашим требованиям:
#include <stdlib.h>
#include <stdio.h>
int main(int argc, char** argv) {
#define jobArrayLength (6ULL)
#define stringLength (256ULL)
int pList[jobArrayLength] = {0}, wtList[jobArrayLength] = {0}, btList[jobArrayLength] = {0};
int totalJobs = 0; // Used to not be declared
char str[stringLength] = {0} ; // Used to be uninitialized
FILE *input;
input = fopen(argv[1], "r");
if (input == NULL) {
printf("File not found. \n");
exit(1);
}
fread(str, 1, stringLength, input); // Used to be sizeof str which is wrong
fclose(input);
int i; // Used to not be declared
int stringIndex = 0;
for (i = 0; i < jobArrayLength; i++) {
if (sscanf(str + stringIndex, "%d %d %d", pList + i, wtList + i, btList + i) == 3) { // used to not index into the array
totalJobs++;
while (str[stringIndex++] != '\n' && stringIndex != stringLength) {} // Skip to next row of numbers
} else {
printf("Input text is not in 3 column format. Please check. \n");
}
}
//printf("Scheduling algorithm: %s\n", argv[2]);
//printf("Total %d tasks are read from \"%s\". press 'enter' to start...\n", totalJobs, input);
//printf("==================================================================\n");
for (i = 0; i < jobArrayLength; i++) {
printf("%d, %d, %d\n", pList[i], wtList[i], btList[i]); // Used to just print an int array element, which is not how printf works.
}
getchar();
return 0;
}