Я пытаюсь открыть файл .csv и читать его как строки в массиве в программировании на C - PullRequest
0 голосов
/ 24 сентября 2019

Я пытаюсь прочитать CSV-файлы, в которых есть список имен.Я должен прочитать его как строку и поместить его в массив, а затем использовать сортировку вставки для сортировки массива.Я сталкиваюсь с ошибкой, которая говорит: Ошибка сегментации (ядро сброшено)


#include <stdio.h>
#include <string.h>
#define MAXSTRINGS 5000
int main(){
    char N[20];
        int i = 0;
        int z = 0;
        FILE *fp;
        fp = fopen("NameList.csv", "r");
        while(fgets(N, 20, fp)!=NULL){
                z++;
        }
    char strings[MAXSTRINGS][20];
        rewind(fp);
        for(i=0;i<z && i < MAXSTRINGS;i++){
                fgets(N, 20, fp);
                strcpy(strings[i], N);
                printf("%N", N);
        }
}

1 Ответ

4 голосов
/ 24 сентября 2019

Возможно, что *fp равно NULL из-за ошибки при чтении файла.Если *fp равно NULL, fgets возвращает ошибку сегментации.Вы пытались поместить:

if(fp == NULL) {
    perror("Error opening file");
    return(-1);
}

перед циклом while?Bye.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...