C File IO — не удается найти методы для содержимого, связанного с файлом IO

#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, так что используйте его.

http://www.cplusplus.com/reference/iostream/

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

1. Это не iostream.h , это всего iostream . А также потоки, связанные с файлами, находятся под <fstream> .

2. Или просто включите <cstdio> для ввода-вывода в стиле C. Но использование <fstream> в программе на C , безусловно, лучший способ, как сказано в ответе.

Ответ №2:

Вам нужно добавить файл заголовка для стандартного ввода-вывода следующим образом:

 #include <stdio.h>
  

или (предпочтительно c )

 #include <cstdio>