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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Repy
0 / 0 / 0
Регистрация: 19.09.2013
Сообщений: 43
#1

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

05.03.2014, 14:23. Просмотров 394. Ответов 11
Метки нет (Все метки)

Вообщем такая история. Программировал в 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) откатывал систему
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.03.2014, 14:23
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Очень странный баг (C++):

Довольно странный и смешной глюк. (и очень непонятный.) - C++
Появился странный глюк. В точке 1 ввожу текст в структуру при помощи обычного cin. В точке 2 видно, что значение принято. В точке 3,...

std::regex : баг на сайте или баг компилятора? - C++
http://en.cppreference.com/w/cpp/regex/regex_match этот код выкидывает throw... Добавлено через 35 секунд компилятор gcc 4.8

очень интересный баг - C++
Если кто-нибудь догадается в чем ошибка, то скажите. Ошибку я уже исправил, но не знаю, почему не работает этот код: #include...

Баг asio? или баг TCP стека? - C++
всем привет. повстречался с очень странным багом. и не могу определить кто бажит, asio, или TCP-стек. на стороне клиента,...

Странная ошибка при компиляции очень очень большой проги ,,boomerang,, - C++
Я в общем, даже и не представляю, куда смотреть в поисках ошибки. Ошибка 1 error LNK2019: ссылка на неразрешенный внешний символ...

Я по по воду хакерства.В последнее время это меня очень сильно заинтересовало может посоветуете чего нибудь(книги,программы и тд ) буду очень благодар - C++
Прошу прощения , но я не нашел подходящей темы и решил написать сюда т.к. единственное что я знаю это С++ и то плоховато)) вы наверное...

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

очень очень странная ошибка - C++
вообщем стоит Windows 8.1 стоит visual studio 2008 возникла проблема: когда пытаюсь скомпилировать прогу - возникает 1 ошибка: ...

Я очень сильно запустил свой ПК,посоветуйте что нибудь т.к. очень сильно тормозит - C++
Сильно запустил свой ПК,при включении приходится ждать около часа чтобы не лагал так сильно,при переустановке Windows лагает также

Странный цикл for - C++
А есть ли в природе компиляторы, которые пропускают вот такой код: array&lt;int, 3&gt; arr = {9, 8, 7}; cout &lt;&lt; &quot;Array size = &quot; &lt;&lt;...

Странный цикл for С++ - C++
Добрый день, ув. форумчане! Перехожу сейчас с Делфи на С++ и разбираюсь в сложнястях синтаксиса С++. Непонятно, что означает такая...


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

Или воспользуйтесь поиском по форуму:
12
Yandex
Объявления
05.03.2014, 16:43
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru