Я ищу, чтобы прочитать текстовый файл, используя относительный путь в C++. Структура каталогов выглядит следующим образом: source -> Resources -> Settings -> Video.txt
.Чтение текстового файла с использованием относительного пути
Содержимое файла (примечание: они используются для тестирования, конечно):
somes*** = 1
mores*** = 2
evenmores*** = 3
Согласно моим исследованиям, это возможно. Тем не менее, я считаю, что это еще не сработало. Например, когда я перешагиваю через свой отладчик, моя переменная char *line
, которая используется для приема текстового ввода по строке, всегда имеет постоянное значение 8. По моему мнению, указатель char
может действовать как динамический массив символов, которые вы можете переназначить.
Почему я не могу прочитать мой файл? Когда я пытаюсь сделать if (!videoSettings)
, он возвращает true, и я получаю сообщение об ошибке (созданное мной).
Код
#ifdef WIN32
const char *filePath = "Resources\\Settings\\Video.txt";
#else
const char *filePath = "Resources/Settings/Video.txt";
#endif
std::ifstream videoSettings(filePath);
if (!videoSettings)
{
cout << "ERROR: Failed opening file " << filePath << ". Switching to configure mode." << endl;
//return false;
}
int count = 0;
char *line;
while(!videoSettings.eof())
{
videoSettings >> line;
cout << "LOADING: " << *line << "; ";
count = sizeof(line)/sizeof(char);
cout << "VALUE: " << line[ count - 1 ];
/*
for (int i = count; i > count; --i)
{
if (i == count - 4)
{
}
}
*/
}
delete line;
Хорошо, спасибо. Однако быстрый вопрос: не динамическое распределение памяти и такой гораздо лучший способ пойти, если вы ищете скорость и оптимизацию? – zeboidlund
Технически фиксированные массивы длины «могут» быть быстрее, но не открывать вас до конца проблем. 1-й урок - никогда не оптимизируйте, если он окажется медленным. 2-я динамическая выделенная память уже используется для библиотеки STL. Поскольку STL это делает - он может делать всевозможные оптимизации, которые вы никогда не сможете сделать как программист (т. Е. Позволить компилятору сделать это) –
О 3-й урок :-) напишите свой код в его самой простой возможной версии - тогда, если его медленное изменение - в противном случае сохранить супер просто и легко читается в наименьшем количестве строк. –