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

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

Войти
Регистрация
Восстановить пароль
 
Anatoliy Coder
0 / 0 / 0
Регистрация: 04.10.2012
Сообщений: 75
#1

fstream считывает лишнее - C++

29.05.2013, 20:25. Просмотров 285. Ответов 1
Метки нет (Все метки)

fstream считывает лишнее символы. Не пойму в чём проблема
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include<iostream>
#include<fstream>
 
using namespace std;
 
int main ()
{
    setlocale(LC_ALL,"Russian");
    fstream file;
    file.open ("input", fstream::in);
    while(!file.is_open())
    {
        cout << " Ошибка: файл не открыт. Возможно вы не создали файл." << endl;
        system("pause");
        file.open ("input", fstream::in);
    }
 
    file.seekg (0, file.end);
    int fileLen = file.tellg();
    file.seekg (0, file.beg);
 
    char *text = new char [fileLen];
 
    file.read(text,fileLen);
    file.close();
 
    cout << text;
    system("pause"); 
    return 0;
}
В файле: hello world
А выдает: hello worldээээ<<<<<<<<ю

Заранее спасибо
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.05.2013, 20:25
Здравствуйте! Я подобрал для вас темы с ответами на вопрос fstream считывает лишнее (C++):

Написать программу которая считывает считывает текст из файла и записывает в другой слова состоящие не менее чем из 7 букв - C++
Написать программу которая считывает считывает текст из файла и записывает в другой слова состоящие не менее чем из 7 букв Мне кажется...

Лишнее копирование - C++
class A { int data; double realData; public: A(double r, int d): data(d), realData(r) { } A operator + (const...

Лишнее значение - C++
И снова здравствуйте. Задача такова: программа должна отображать у левого края сплошной квадрат из звездочек с заданной стороной. ...

Лишнее считывание строк - C++
Всем доброго вечера! Как всегда, избитая тема про потоки cin/cout. Предположим, в следующем формате пишется часть кода: ...

Программа выводит лишнее число - C++
Текст задачи: В двух словах о проблеме: По идее в первую строку выходного файла OUTPUT.TXT нужно вывести числа, которые соответствуют...

Программа работает, но выводит лишнее. - C++
Уделение элементов в массиве, расположенных между максимальным и минимальным элементом: #include &lt;stdio.h&gt; #include &lt;conio.h&gt; ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
alsav22
5419 / 4815 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
29.05.2013, 22:20 #2
Терминального '\0' в конце считанного не хватает. И если читаете в бинарном режиме, то и файл открывайте для бинарного чтения.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include<iostream>
#include<fstream>
 
using namespace std;
 
int main ()
{
    setlocale(LC_ALL,"Russian");
    fstream file;
    file.open ("input.txt", ios::in | ios::binary);
    while(!file.is_open())
    {
        cout << " Ошибка: файл не открыт. Возможно вы не создали файл." << endl;
        system("pause");
        return 0;
    }
 
    file.seekg (0, file.end);
    int fileLen = file.tellg();
    file.seekg (0, file.beg);
 
    char *text = new char[fileLen];
 
    file.read(text, fileLen);
    text[fileLen] = '\0';
    file.close();
    
 
    cout << text;
    
    system("pause"); 
    return 0;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.05.2013, 22:20
Привет! Вот еще темы с ответами:

Выполняется лишнее прочтение файла - C++
Добрый вечер, проблема такая, цикл while (!file.eof()) выполняется на одну итерацию больше положенного, пробовал менять условие...

Форматирование тексту + ошибки + лишнее - C++
Вот задача + решение // xz.cpp : Defines the entry point for the console application. // #include &quot;stdafx.h&quot; #include...

Лишнее удаление родителя при создании класса наследника - C++
Не могу понять откуда в выводе программы появляется первая надпись &quot;delete A&quot;. По идее надписей &quot;delete&quot; должно быть столько же, сколько и...

Считывание из файла в char - при выводе выводится лишнее - C++
Считываю из файла в строку типа char, если у меня в строке меньше 16 символов, то при выводе выводится какой-то мусор, наверное связано с...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

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