Я использую fread для чтения всего исходного файла в буфер. Поскольку файл находится в потоке или в буфере, файл состоит из байтов, а не строк или символов, верно? Итак, как мне разделить байты в буфере, чтобы я мог вывести токены в другой файл, чтобы его можно было проанализировать?
Это правильный подход к этому или есть лучший способ? Я слышал, что чтение всего файла - это путь.
Я попытался использовать строковый и символьный подход и получил странные символы, поэтому я отбросил их и начал искать ответ на байты.
FILE *file;
FILE *file2;
char *buffer;
void lex();
void parse();
void parse()
{
file2 = fopen("test1.txt", "w");
printf("been through parse\n\n");
fprintf(file2, "The file called test1.txt contains this text\n\n%s\n\n", buffer);
}
void lex()
{
printf("been through lex \n\n", buffer);
parse();
}
int main()
{
long numbytes;
file = fopen("text.txt", "r");
fseek(file, 0L, SEEK_END);
numbytes = ftell(file);
fseek(file, 0L, SEEK_SET);
buffer = (char*)calloc(numbytes, sizeof(char));
fread(buffer, sizeof(char), numbytes, file);
printf("The file called text.txt contains this text\n\n%s\n\n", buffer);
lex(buffer);
fclose(file);
free(buffer);
return 0;
}