crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> std::transform не работает при чтении строк из файла., что не правильно делаю, подскажите?
ViGOur
  опции профиля:
сообщение 3.8.2010, 12:55
Сообщение #1


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Есть код:
#include <iostream>
#include <algorithm>
#include <string>
#include <fstream>

int main(void)
{
    std::ifstream file("dict.dat", std::ifstream::in);
    if( !file.is_open())
        return -1;
    while( !file.eof())
    {
        std::string line;
        getline( file, line);
  
        // прочитанные строки нужно lower'касить, но они не lower'касятся почему-то.
                // Тоесть остаются как были например "МоСКва СТОлица" не приводится к "москва столица"
        std::transform( line.begin(), line.end(), line.begin(), ::tolower);

        std::cout << line << std::endl;
    }

    std::string line1="New TESTING String";
    // А тут все нормально
    std::transform( line1.begin(), line1.end(), line1.begin(), ::tolower);
    std::cout << line1 << std::endl;

    return 0;
}
Но вот почему? Понять могу! :(
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
ViGOur
  опции профиля:
сообщение 3.8.2010, 14:18
Сообщение #2


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Цитата(AD @ 3.8.2010, 15:09) *
У тебя указатель в файле, по идее, уже дошел до конца файла, что ты прочитываешь последним getline()
это я делал шаблон, для того, чтобы воспроизвести ошибку, потому лишнее и осталось. Поправил. :)

Еще выяснил, что не работает у меня под линуксом (ubuntu), а под виндой все в порядке!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 27.11.2024, 5:50