#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. Теперь это работает, единственное, что он выводит какие-то ненужные символы, я не знаю, почему