Я действительно новичок в программировании на C. У меня есть задание, в котором я должен заполнить массив целых чисел из текстового файла, используя аргументы командной строки. Массив должен иметь возможность принимать все числа из файла.
Это сегмент кода, который должен выполнять вышеперечисленное, но он терпит неудачу. Я все еще должен добавить проверку ошибок, но мне просто нужно знать, где я иду не так, и если я нахожусь на правильном пути.
Из того, что я знаю до сих пор, мне придется использовать распределение памяти, чтобы сделать мой массив динамическим. Я использовал ftell (), чтобы найти размер файла в байтах, чтобы я мог соответственно выделить память.
#include <stdio.h>
#include <math.h>
#include <stdbool.h>
#include <fstream>
#include <stdlib.h>
int main(int argc, char *argv[]) {
if (argc > 2) {
printf(stderr, "Error, too many arguments supplied.");
exit(1);
}
if (argc == 2) {
int *numArray = NULL; //pointer to integer
FILE* inputFile = fopen(argv[1], "r");
fseek(inputFile, 0, SEEK_END);
// calculating the size of the file
int fileSize = ftell(inputFile);
numArray = malloc(fileSize * sizeof(int));
if (numArray == NULL) {
printf(stderr, "Error: File is empty.");
exit(1);
}
int num;
int arraySize = sizeof(numArray) / sizeof(numArray[0]);
for (int i = 0; i < arraySize; i++) {
fscanf(inputFile, "%d", &num);
numArray[i] = num;
}
fclose(inputFile);
}
}
Если файл содержит: 67, 66, 353, 789, 2342,
NumArray = {67, 66, 353, 789, 2342}