Я пытаюсь читать из файла, используя fgets и sscanf.В моем файле в каждой строке времени есть символы, которые я хочу поместить в вектор.Пока у меня есть следующее:
FILE *fp;
fp = fopen(filename, "r");
if(!fp)
{
fprintf(stderr, "Unable to open file %s\n", filename);
return 0;
}
// Read file
int line_count = 0;
char buffer[1024];
while(fgets(buffer, 1023, fp))
{
// Increment line counter
line_count++;
char *bufferp = buffer;
...
while(*bufferp != '\n')
{
char *tmp;
if(sscanf(bufferp, "%c", tmp) != 1)
{
fprintf(stderr, "Syntax error reading axiom on "
"line %d in file %s\n", line_count, filename);
return 0;
}
axiom.push_back(tmp);
printf("put %s in axiom vector\n", axiom[axiom.size()-1]);
// increment buffer pointer
bufferp++;
}
}
мой аксиомный вектор определен как vector<char *> axiom;
.Когда я запускаю свою программу, я получаю ошибку сегмента.Это происходит, когда я делаю sscanf
.Любые предложения о том, что я делаю не так?