используя строку для чтения файла - Xcode - PullRequest
1 голос
/ 24 апреля 2010

Следующее не работает и дает мне SIGABRT при запуске в отладчике:


std::ifstream inFile;

inFile.open("/Users/fernandonewyork/inputText.txt");    

cout << inFile << endl;

vector<string> inText;

if (inFile) {
    string s4;

    while (inFile>>s4) {
        inText.push_back(s4);
    }

}
inFile.close();

Следующее делает:


std::ifstream inFile;

inFile.open("/Users/fernandonewyork/inputText.txt");    

cout << inFile << endl;

vector<string> inText;

if (inFile) {
    string s4("This is no lnger an empty string");

    while (inFile>>s4) {
        inText.push_back(s4);
    }

}
inFile.close();

У меня сложилось впечатление, что я мог просто использовать s4, не беспокоясь о каких-либо космических соображениях, или здесь что-то еще происходит? Это полная ошибка, которую я получаю из верхнего кода:

malloc: * ошибка для объекта 0x100010a20: освобожденный указатель не выделен * установить точку останова в malloc_error_break для отладки Программа получила сигнал: «SIGABRT».

1 Ответ

1 голос
/ 24 апреля 2010

Эта вопиющая ошибка была рассмотрена более ранним вопросом :

Решение:

Установить

_GLIBCXX_FULLY_DYNAMIC_STRING=1

в ваших макросах препроцессора в целях Вкладка построения информации.

Есть еще одно окно настроек с полем «Макросы препроцессора» (настройки проекта?), Но установка этого значения не даст никакого эффекта.

- Хм, эта проблема несколько отличается от этой, но по иронии судьбы ваш симптом встречается чаще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...