Форум программистов, компьютерный форум CyberForum.ru

Очень странный баг - C++

Восстановить пароль Регистрация
 
Repy
0 / 0 / 0
Регистрация: 19.09.2013
Сообщений: 43
05.03.2014, 14:23     Очень странный баг #1
Вообщем такая история. Программировал в Visual studio, залез в чужую память и после этого не могу правильно считать данные из текстовых файлов.
Написал новую программу с нуля - она тоже не правильно считывает. На другом компьютере тот же самый код работает правильно и считывает нормально
(может проблема в библиотеке fstream?)
Вот программа, по которой я тестирую поведение:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include "stdafx.h"
#include <iostream>
#include <fstream>
 
 
using namespace std;
 
int main()
{
    fstream fin,fout;
    fin.open("C://test/in.txt",ios::in);
    fout.open("C://test/out.txt",ios::out);
    char c;
    int i = 0;
    while (!fin.eof()) 
    {
        fin >> c;
        cout << c;
        fout << c;
    }
    system("pause");
}
Если во входном файле "hello", то в выходном будет "hello", как и должно быть, но в консоль он выведет " *h e l l o " и, если посчитать длину этой строки, то будет 13 вместо 5.
(звездочкой я обозначил непонятный символ, квадратик)
Если входной файл пустой, то появится 3 лишних символа " **"

Пробовал:
1) переустанавливал visual studio
2) устанавливал старые версии visual studio, там тоже самое
3) откатывал систему
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zer0mail
2185 / 1868 / 187
Регистрация: 03.07.2012
Сообщений: 6,640
Записей в блоге: 1
05.03.2014, 14:26     Очень странный баг #2
Выложи файл in.txt. Какая ОС?
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11823 / 6802 / 769
Регистрация: 27.09.2012
Сообщений: 16,870
Записей в блоге: 2
Завершенные тесты: 1
05.03.2014, 14:29     Очень странный баг #3
кодировка файла?
Repy
0 / 0 / 0
Регистрация: 19.09.2013
Сообщений: 43
05.03.2014, 14:29  [ТС]     Очень странный баг #4
ОС windows 8.1 pro x64
Вложения
Тип файла: txt in.txt (2 байт, 7 просмотров)
Repy
0 / 0 / 0
Регистрация: 19.09.2013
Сообщений: 43
05.03.2014, 14:31  [ТС]     Очень странный баг #5
Croessmah, я не знаю, как узнать кодировку
zer0mail
2185 / 1868 / 187
Регистрация: 03.07.2012
Сообщений: 6,640
Записей в блоге: 1
05.03.2014, 14:34     Очень странный баг #6
Файл всего 2 байта, никаких "hello" там нет, естественно
Repy
0 / 0 / 0
Регистрация: 19.09.2013
Сообщений: 43
05.03.2014, 14:37  [ТС]     Очень странный баг #7
ой, извиняюсь, забыл поменять с последнего теста
Вложения
Тип файла: txt in.txt (12 байт, 7 просмотров)
zer0mail
2185 / 1868 / 187
Регистрация: 03.07.2012
Сообщений: 6,640
Записей в блоге: 1
05.03.2014, 14:42     Очень странный баг #8
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Файл в кодировке Unicode UTF-16LE, естественно он в консоли выводится так...
О кодировках можно почитать тут: http://zelserg.livejournal.com/2117.html
А о Unicode: http://zelserg.livejournal.com/2570.html
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11823 / 6802 / 769
Регистрация: 27.09.2012
Сообщений: 16,870
Записей в блоге: 2
Завершенные тесты: 1
05.03.2014, 14:45     Очень странный баг #9
in-1.txt
Repy
0 / 0 / 0
Регистрация: 19.09.2013
Сообщений: 43
05.03.2014, 14:48  [ТС]     Очень странный баг #10
Я создал новый файл и все стало нормально. Спасибо всем большое!
(готов был поклясться, что пробовал это раньше)
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
05.03.2014, 14:53     Очень странный баг #11
Цитата Сообщение от Repy Посмотреть сообщение
Croessmah, я не знаю, как узнать кодировку
У тебя UCS2 little endian, не понятные символы - это признак кодировки.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.03.2014, 16:43     Очень странный баг
Еще ссылки по теме:

C++ очень очень странная ошибка
Программы на С++. Очень надо. Буду очень благодарен! C++
C++ Странная ошибка при компиляции очень очень большой проги ,,boomerang,,

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16825 / 5246 / 321
Регистрация: 30.03.2009
Сообщений: 14,127
Записей в блоге: 26
05.03.2014, 16:43     Очень странный баг #12
Цитата Сообщение от zer0mail Посмотреть сообщение
Файл в кодировке Unicode UTF-16LE, естественно он в консоли выводится так...
О кодировках можно почитать тут: http://zelserg.livejournal.com/2117.html
А о Unicode: http://zelserg.livejournal.com/2570.html
Полезные ссылки
Yandex
Объявления
05.03.2014, 16:43     Очень странный баг
Ответ Создать тему
Опции темы

Текущее время: 12:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru