Невозможно определить кодировку в файле, C++

программирование С++ qt

Ubutnu 11.04 x64
QtCreator 2.2.0
C++

fstream source, result;
char cChar;

while(!source.eof())
{
cChar = source.get();
result << cChar;
}

Программа исправно переписывает все содержимое файла source в файл result. Но в итоге QtCreator выдает вот что:
Ошибка: не удалось преобразовать "result" в кодировку "System". Редактирование невозможно.

Однако сам Qt содержимое файла показывает. После выполнения gedit не может посмотреть в файл.
В чем проблема?

Примечание:
http://s52.radikal.ru/i137/1106/e8/21f85c513842.jpg

Примечание:
Ошибка возникает после выполнения программы.
-rw-r--r-- 1 roboslone roboslone 40 2011-06-09 17:34 result
-rw-r--r-- 1 roboslone roboslone 39 2011-06-09 17:34 source

Действительно, result на байт больше.

Примечание:
PetSerAl, огромное спасибо, теперь все работает!
Ответы:
Когда точно возникает ошибка? При компиляции, при выполнении или после завершения программы? Файлы source и result точно равны или размер файла result на один байт больше?
Если source.eof() возвращает false, то это не значит, что конец файла ещё не достигнут и можно прочитать ещё байт. source.eof() может возвращать false если конец файла был достигнут но не был прочитан. source.get() не просто так возвращает не char, а int. Если чтение очередного байта не было успешным, так как был достигнут конец файла, то source.get() возвращает -1. Вы это пропускаете и записываете байт FF в конец файла. Скорее всего, именно на этот байт и ругается QtCreator.


13 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.