Программа не читает csv-файл

#c #csv #file

Вопрос:

Я новичок в C, и я пытаюсь прочитать данные из файла csv (который, я думаю, должен быть файлом excel). Программа не будет считывать файл и всегда будет выводить сообщение об ошибке. Вот мой код.

 #include <stdio.h>
#include <stdlib.h>
#include <string.h>


int main()
{

    FILE * fpoint = fopen("Cartel1.csv", "r");

    if(fpoint==NULL){
        puts("Error");
    }

    char line[200];

    while(fgets(line, sizeof(line), fpoint)){
        char *token;

        token=strtok(line, ",");

        while(token!=NULL){
            printf("%-12s", token);
            token = strtok(NULL, ",");
        }
        puts("");
    }
}
 

Комментарии:

1. Поскольку единственное сообщение об ошибке, напечатанное в этом коде, связано с невозможностью открыть именованный файл, все пальцы (все до одного) указывают на это как на проблему. если вам нужна дополнительная информация, вы можете perror . Я подозреваю , что текущий рабочий каталог, в котором запущена ваша программа, не содержит файла, о котором вы думаете (он находится в другой папке), и, следовательно fopen , сбой, но это чистое предположение и предположение.

2. OP здесь: Но все они на рабочем столе, вот почему я не понимаю

3. Я попробовал perror, и там написано «такого файла или каталога нет

4. если только фактическая программа также не запущена с вашим рабочим столом в качестве текущего рабочего каталога, это не сработает. Вы можете проверить это, отредактировав свой код и указав полный путь к файлу. Не забывайте, что в Windows обратные косые черты должны быть экранированы (удвоены). Если это сработает, то текущий рабочий каталог вашей программы, запущенный в любой среде разработки, которую вы используете, и не сообщающий нам об этом, не является тем, что вы думаете.

Ответ №1:

Попробовал эту программу и обнаружил ошибку как «Ошибка сегментации».

«Ошибка сегментации» возникает, когда программа пытается получить доступ к ячейке памяти, доступ к которой ей запрещен, или пытается получить доступ к ячейке памяти способом, который не разрешен (например, попытка записи в папку, доступную только для чтения, или перезапись части операционной системы).

Для решения этой проблемы, пожалуйста, попробуйте поместить файл программы и файл .csv в один и тот же каталог(папку) на вашем рабочем столе.

Комментарии:

1. Дело в том, что я абсолютный идиот. Это мой первый подход к файлам и csv, и я забыл преобразовать файл excel в csv. Теперь это работает, единственное, что он выводит какие-то ненужные символы, я не знаю, почему