#c #file #io
#c #файл #io
Вопрос:
#include "Shader.h"
#include <cstring>
#include <iostream>
#include <cstdlib>
using namespace std;
static char* textFileRead(const char *fileName)
{
char* text;
if (fileName != NULL)
{
FILE *file = fopen(fileName, "rt");
if (file != NULL)
{
fseek(file, 0, SEEK_END);
int count = ftell(file);
rewind(file);
if (count > 0)
{
text = (char*)malloc(sizeof(char) * (count 1));
count = fread(text, sizeof(char), count, file);
text[count] = '';
}
fclose(file);
}
}
return text;
}
Это то, что у меня есть для шейдерной программы, найденной в руководстве, которому я пытаюсь следовать. Когда я создаю это для проверки на наличие ошибок, я получаю ошибки, говорящие о том, что fopen (), fseek (), ftell (), rewind () и fclose () не объявлены в этой области. Как я могу избавиться от этих ошибок?
Комментарии:
1. Это определенно не шейдерная программа. Возможно, часть основной программы для настройки шейдеров.
Ответ №1:
Вы используете C file IO в программе на C . Вы включили iostream.h, так что используйте его.
Комментарии:
1. Это не
iostream.h
, это всегоiostream
. А также потоки, связанные с файлами, находятся под<fstream>
.2. Или просто включите <cstdio> для ввода-вывода в стиле C. Но использование <fstream> в программе на C , безусловно, лучший способ, как сказано в ответе.
Ответ №2:
Вам нужно добавить файл заголовка для стандартного ввода-вывода следующим образом:
#include <stdio.h>
или (предпочтительно c )
#include <cstdio>