Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
IlyaKr
0 / 0 / 0
Регистрация: 18.07.2017
Сообщений: 85
1

Считывает из файла буквы Н в конце текста в количестве переносов строки

19.03.2018, 18:07. Просмотров 284. Ответов 7

Я использую такой код для считывания из файла текста целиком в массив char, но в конце в массиве появляются буквы H в количестве переносов строки не зависимо от того где они, я думаю это не объявленные элементы, но может и нет.
C++
1
2
3
4
5
6
7
8
9
10
11
12
ifstream ifs("input.txt");
    ifs.seekg(0, ios::end);
 
    int length = ifs.tellg();
    char* str = new char[length];
 
    ifs.seekg(0, ios::beg);
    ifs.read(&str[0], length);
 
    str[length] = '\0';
 
    cout << str << endl;
если кто расскажет способ по короче и без багов, буду благодарен, ну или хотя бы поможет доделать этот
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.03.2018, 18:07
Ответы с готовыми решениями:

Написать программу, которая считывает английский текст из файла и выводит на экран слова текста, начинающиеся и оканчивающиеся на гласные буквы.
напишите пожалуйста в С++

Файл: Создайте текстовый файл, содержащий в начале каждой строки гласные буквы соответствующей строки файла, а в конце строки - согласные
Создайте текстовый файл, содержащий в начале каждой строки гласные буквы соответствующей строки...

Программа, которая считывает английский текст из файла и выводит на экран слова текста, начинающиеся и оканчивающиеся на гласные буквы
Помогите пожалуйста, как написать программу, которая считывает английский текст из файла и выводит...

Написать программу, которая считывает английский текст из файла и выводит на экран слова текста, начинающиеся и оканчивающиеся на гласные буквы
Написать программу, которая считывает английский текст из файла и выводит на экран слова текста,...

Расположить латинские буквы в начале строки, отсортированные по алфавиту, а русские буквы в конце
ПОЖАЛУЙСТА ПОМОГИТЕ блондинке:) раньше не было фортрана а перевелася на другой факультет и сразу...

7
art_h4rd
7 / 7 / 14
Регистрация: 18.10.2016
Сообщений: 46
Завершенные тесты: 1
19.03.2018, 18:20 2
Можешь попробовать такой вариант:
C++
1
2
3
4
5
6
7
8
int main()
{
    ifstream file("input.txt");
    string str;
    while (getline(file, str, '\0')) {}
    cout << str << endl;
    return 0;
}
0
Azazel-San
Mental handicap
681 / 350 / 107
Регистрация: 24.11.2015
Сообщений: 1,656
Завершенные тесты: 1
19.03.2018, 18:29 3
C++
1
2
3
4
5
ifstream f("in.txt");
stringstream ss;
ss << f.rdbuf();
string text = ss.str();
cout << text;
0
IlyaKr
0 / 0 / 0
Регистрация: 18.07.2017
Сообщений: 85
19.03.2018, 18:57  [ТС] 4
Azazel-San, string это конечно хорошо, но нужно именно использовать char[](такого задание)
0
art_h4rd
7 / 7 / 14
Регистрация: 18.10.2016
Сообщений: 46
Завершенные тесты: 1
19.03.2018, 19:05 5
Цитата Сообщение от IlyaKr Посмотреть сообщение
но нужно именно использовать char[]
C++
1
2
3
4
5
6
7
8
9
10
11
12
int main()
{
    ifstream file("test.txt");
    int size;
    file >> size;
    char * str = new char[size];
    file.get(); 
    file.getline(str, size, '\0');
    cout << str << endl;
    delete[]str;
    return 0;
}
0
nd2
2968 / 2506 / 1089
Регистрация: 29.01.2016
Сообщений: 8,359
19.03.2018, 19:38 6
Цитата Сообщение от IlyaKr Посмотреть сообщение
или хотя бы поможет доделать этот
IlyaKr, файл открывай в бинарном режиме, память выделяй на единицу больше, чем размер данных в файле.

Добавлено через 7 минут
Цитата Сообщение от IlyaKr Посмотреть сообщение
C++
1
&str[0]
Тут достаточно просто str передать в метод.
0
IlyaKr
0 / 0 / 0
Регистрация: 18.07.2017
Сообщений: 85
20.03.2018, 12:16  [ТС] 7
суть в том, что виндовс на перенос строки тратит 2 байта, а нужно их считывать как 1
0
nd2
2968 / 2506 / 1089
Регистрация: 29.01.2016
Сообщений: 8,359
20.03.2018, 14:42 8
Цитата Сообщение от IlyaKr Посмотреть сообщение
а нужно их считывать как 1
Зачем?

Добавлено через 3 минуты
Вот код. Что-то не так выводится?
C++
1
2
3
4
5
6
7
8
9
10
11
12
    ifstream ifs("input.txt", ios::binary);
    ifs.seekg(0, ios::end);
 
    int length = ifs.tellg();
    char* str = new char[length + 1];
 
    ifs.seekg(0, ios::beg);
    ifs.read(str, length);
 
    str[length] = '\0';
 
    cout << str << endl;
0
20.03.2018, 14:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.03.2018, 14:42

Программа считывает строку текста, выводит число слов и количество вхождений каждой буквы
Напишите программу, считывающую строку текста и выводящую число слов в этой строке, а также...

Удаление буквы А в начале и в конце строки
Помогите пожалуйста решить кто нибудь вот эту программу) НАПИСАТЬ ПРОГРАММУ КОТОРАЯ ВВОДИТ С...

Функция ReadLine() считывает не все строки из текстового файла (пропускает строки)
Здравствуйте. Изучаю Visual Basic 2010. Сейчас разбираюсь со считыванием информации из текстового...


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

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

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