Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/25: Рейтинг темы: голосов - 25, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 02.04.2017
Сообщений: 8

Как полностью считать текстовый файл в массив символов?

02.04.2017, 00:47. Показов 5272. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
7
8
9
10
11
12
ifstream file(name);
char line[128];
char *text = new char[size(name) + 1];
char symbol;
int i = 0;
while (!file.eof())
{
    file.getline(line, 128);
    strcat_s(text, strlen(line), line);
}
file.close();
cout << text;
Пытаюсь сделать таким способом, но выводит ошибку. В чем может быть проблема?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.04.2017, 00:47
Ответы с готовыми решениями:

Как записать числовую матрицу в текстовый файл полностью?
Всем доброго времени суток! У меня в лабе есть три задания: записать матрицу в текстовый файл, записать по рядкам, записать по элементам....

Считать файл в массив без лишних символов
здравствуйте. нужна правильная реализация задачи: на вход подается файл, примерное содержание - &quot;Hello, username! etc. etc.&quot; ...

Как можно считать файл *.pas или *.cpp как текстовый ?
ifstream abc (&quot;*.pas&quot;,ios::text); не работает, ибо у ios нет параметра text

11
 Аватар для Hitoku
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
02.04.2017, 00:55
У меня вот так получилось
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
#include "stdafx.h"
#include <iostream>
#include <string>
#include <fstream>
 
using namespace std;
 
int main()
{
    ifstream file("E:\input.txt");
    string mas[10]; int n = 0; char line[100];
    while (!file.eof())
    {
        n++;
        file.getline(line,100);
        mas[n] = line;
    }
    file.close();
    for (int i = 1; i <= n; i++) //вывод для проверки
    {
        cout << mas[i] << endl;
    }
    system("pause");
    return 0;
}
1
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
02.04.2017, 01:05
Цитата Сообщение от Hitoku Посмотреть сообщение
У меня вот так получилось
Цитата Сообщение от Hitoku Посмотреть сообщение
ifstream file("E:\input.txt");
Ошибки повторяются? Открытие файла для чтения всегда проверять нужно.
Цитата Сообщение от Hitoku Посмотреть сообщение
C++
1
2
while (!file.eof()) 
{
Плохая конструкция, часто приводящая к ошибкам.
0
0 / 0 / 0
Регистрация: 02.04.2017
Сообщений: 8
02.04.2017, 01:06  [ТС]
За код спасибо, но необходимо считать все без использования string.
Я пытаюсь сделать так: считать кусочек и тут же его записать в массив, но что-то идёт не так

Там ошибка скорее всего в вызове strlen. И еще до меня дошло, что надо же еще и пробелы в массив записать, а они теряются.
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
02.04.2017, 01:10
Лучший ответ Сообщение было отмечено IAmHereRightNow как решение

Решение

Добавлено через 3 минуты
Цитата Сообщение от IAmHereRightNow Посмотреть сообщение
Как полностью считать текстовый файл в массив символов?
Цитата Сообщение от IAmHereRightNow Посмотреть сообщение
необходимо считать все без использования string.
Тогда, сначала нужно узнать размер файла. Потом выделить память нужного размера. Потом туда читать.
http://www.cplusplus.com/refer... eam/tellg/
1
0 / 0 / 0
Регистрация: 02.04.2017
Сообщений: 8
02.04.2017, 01:14  [ТС]
C++
1
2
3
4
5
6
7
8
int size()
{
    ifstream file(name);
    file.seekg(0, ios::end);
    int size = file.tellg();
    file.close();
    return size;
}
Добавлено через 2 минуты
Я создаю динамический массив char, пытаюсь туда читать, но не выходит, я что-то неправильно делаю.
0
 Аватар для Hitoku
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
02.04.2017, 01:16
nd2, только осваиваю язык...
Цитата Сообщение от nd2 Посмотреть сообщение
Открытие файла для чтения всегда проверять нужно.
Вы это имеете в виду?
C++
1
if (file.is_open)
Цитата Сообщение от nd2 Посмотреть сообщение
Плохая конструкция, часто приводящая к ошибкам.
Не могли бы вы сказать вкратце какие есть альтернативы?
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
02.04.2017, 01:18
Цитата Сообщение от Hitoku Посмотреть сообщение
Вы это имеете в виду?
У тебя опять одинарный обратный слеш в пути. Файл не должен открыться. Обратный слеш двойным нужно делать.
Цитата Сообщение от IAmHereRightNow Посмотреть сообщение
я что-то неправильно делаю.
По ссылке пример есть.

Добавлено через 1 минуту
Цитата Сообщение от Hitoku Посмотреть сообщение
Не могли бы вы сказать вкратце какие есть альтернативы?
Помещай чтение в параметры while().
1
 Аватар для Hitoku
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
02.04.2017, 01:20
Цитата Сообщение от nd2 Посмотреть сообщение
Файл не должен открыться
Но он открывается У меня была проблема со слэшем, если имя файла начинается на f, а так всё нормально открывает и читает
0
0 / 0 / 0
Регистрация: 02.04.2017
Сообщений: 8
02.04.2017, 01:27  [ТС]
Спасибо огромное, все работает (как в примере по ссылке).
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
02.04.2017, 01:48
Цитата Сообщение от Hitoku Посмотреть сообщение
Но он открывается
В любом случае это неправильно. Тут открывается, с другим компиляторе (или при других сочетаниях, или на другой ОС) не откроется. Компилятор предупреждение по этому поводу выдаёт: i: неизвестная escape-последовательность, т.е., он воспринимает это как escape-последовательность, а не как обратный слеш.
И, в любом случае, открытие файла для чтения всегда проверять нужно.
1
02.04.2017, 01:53

Не по теме:

nd2, буду иметь в виду, спасибо за советы :)

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.04.2017, 01:53
Помогаю со студенческими работами здесь

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

Считать csv файл полностью
Добрый день, считываю csv файл вот так int i=0; while(!creat.eof()) { creat&gt;&gt;n; i++; ...

Почему полностью не считывает текстовый файл?
Задание: Текстовый файл содержит записи о телефонах и их владельцах. Переписать в другой файл телефоны тех владельцев, фамилии которых...

Можно ли в массив чаров считать строку полностью?
У меня получается считать только первое слово, понимаю что есть функция getline() и еще я какую-то похожую видел, но желательно без этих...

Считать текстовый файл из интернета
Здравствуйте. Подскажите пожалуйста как считать все данные из текстового файла, который находиться в сети. Есть файл,...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru