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

Как правильно записать числа в динамический массив?

01.12.2021, 10:29. Показов 726. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У меня есть функция
C++
1
void Func(char** Array, int n) {}

Мне нужно прочитать данные из файла, записать в массив и передать в функцию. Саму функцию менять нельзя!


Мой вариант такой:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
           ifstream file("---.txt");
 
            do
            {
                if (file >> b)
                {                   
                    std::cout << b << " ";
                    char* d = new char(b);
                    int h = sizeof(d) - 1;
                    Sort(&(d[2]), h - 2);//МЕНЯТЬ НЕЛЬЗЯ
                }
                else
                {
                    file.clear();
                    file.ignore(1, ' ');
                }
            } while (!file.eof());
 
            file.close();     
        }
Если я не ошибаюсь, то у меня в массиве только один элемент, поэтому d[2] работать не будет. Как решить эту проблему?
Программа выдает ошибку о том, что невозможно совместить char* с параметром типа char**
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.12.2021, 10:29
Ответы с готовыми решениями:

Как правильно записать двумерный динамический массив?
Вот есть кусок кода: int n; cout&lt;&lt;&quot;Введите размерность матрицы: &quot;&lt;&lt;endl; cin&gt;&gt;n; int *c=new...

Динамический массив. Как правильно записать свойство OnClick
Есть дин. массив, необходимо записать свойство Onclick таким образом, что бы при нажатие по картинке, происходила ее смена на другое...

Как правильно прочитать целые числа из файла и записать их в массив
#include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;cstdlib&gt; using namespace std; void rand_for_arr(int* arr, int size_of_arr); ...

18
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
01.12.2021, 11:19
b какого типа? Что за d[2]? Где ты используешь Array?
0
0 / 0 / 0
Регистрация: 12.01.2021
Сообщений: 35
01.12.2021, 11:42  [ТС]
nmcf, float b,
Func(char** Array, int n) - это функция для сортировки.
У меня по заданию пользователь может вводить числа в командную строку. Если он этого не делает, то нужно запросить файл, с которого программа считает числа.

d[2] - на первом месте в файле записано НЕ число, которое нужно пропустить

while (!file.eof()) - отбирает с файла только числа
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
01.12.2021, 11:47
Если b - float, то в чём смысл 8-й строки?
0
0 / 0 / 0
Регистрация: 12.01.2021
Сообщений: 35
01.12.2021, 11:54  [ТС]
nmcf, я просто не знаю как правильно сделать так, чтобы значение передавались в функцию правильно.

void Func(char** Array, int n) {}
Array - массив элементов
n - количество. Я записывала его как h

После while (!file.eof()) остаются только числа b. Я думала, что их нужно записать в массив, чтобы позже передать в функцию под видом char** Array
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
01.12.2021, 11:56
Func принимает массив строк, судя по прототипу. А что ты там делаешь - не ясно. Что за char(b)?
0
0 / 0 / 0
Регистрация: 12.01.2021
Сообщений: 35
01.12.2021, 12:07  [ТС]
nmcf,Func - там происходить сортировка чисел.
char(b) - мне нужно передать в функцию массив параметром типа char**(это как я поняла), поэтому я пыталась сделать динамический массив и записать туда b

C++
1
2
char* d = new char(b);
int h = sizeof(d) - 1;
Именно эти 2 строки и неправильные. Вот только как мне его записать так, чтобы программа работала я не знаю
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
01.12.2021, 12:38
А остальное правильное?
Массив надо подготовить сначала - создать и заполнить, а уже после сортировать.
Ты считываешь float. Как это вообще предполагается в массив строк добавлять?
0
0 / 0 / 0
Регистрация: 12.01.2021
Сообщений: 35
01.12.2021, 13:02  [ТС]
nmcf, я считываю float, поскольку среди чисел есть 0.5
Я не могу понять как нужно создать динамический массив типа char**, а потом его заполнять
0
518 / 410 / 188
Регистрация: 08.04.2013
Сообщений: 1,750
01.12.2021, 13:19
Цитата Сообщение от sawamura333 Посмотреть сообщение
Мне нужно прочитать данные из файла, записать в массив
Выложи сперва файл с данными, чтоб понять что там и что пропустить.
0
0 / 0 / 0
Регистрация: 12.01.2021
Сообщений: 35
01.12.2021, 13:28  [ТС]
marat_miaki, marat_miaki,
Данные:
1 File2.txt 12 12 12 12 2 -2 0.5

Итак, поскольку массив начинает свой отчет от индекса 0, я добавила 1, который не нужно считывать.
На [1] стоит File2.txt. Это файл, в который сохраняется результат, для этого у меня есть 2 функцию. С ней проблем не будет, как только я разберусь с 1 функцией Func

Возможно, пользователь захочет ввести не число, а символ, поэтому я и делала проверку на числа. Но если с этим будут проблемы, то можно обойтись и без проверки...Хотя бы так понять...
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
01.12.2021, 13:50
Ты понимаешь разницу между строками и числами? Если извлечь float, то в char массив уже не поместить.
0
0 / 0 / 0
Регистрация: 12.01.2021
Сообщений: 35
01.12.2021, 14:04  [ТС]
nmcf, тогда считывать его как string и по-другому проверять число ли это?
C++
1
2
3
4
int b;
char* d[] = { b };
int h = sizeof(d) - 1;
Sort(&(d[2]), h - 2);
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
01.12.2021, 14:10
Задание изложи как тебе его дали, а не своими словами.
0
0 / 0 / 0
Регистрация: 12.01.2021
Сообщений: 35
01.12.2021, 14:21  [ТС]
nmcf,
Входные данные – Параметры командной строки: Последовательность чисел.
Если пользователь не задал параметры командной строки, программа входит в
диалог с пользователем и спрашивает имя файла, из которого нужно прочитать входящие данные
Первая функция второго модуля упорядочивает предоставленную ей через список параметров
последовательность по критерию(критерии разные)
Программа должна предоставить результаты в текстовом файле, имя которого
получает с командной строки

Сейчас я пытаюсь обработать вариант, когда пользователь не вводит аргументы в командную строку.
Поскольку программа должна предоставить результаты в текстовом файле, имя которого
получает с командной строки, то я решила, что в файле(который мы читаем) под [1] будет стоять второй файл, в который нужно сохранить 1 File2.txt 12 12 12 12 2 -2 0.5
0
518 / 410 / 188
Регистрация: 08.04.2013
Сообщений: 1,750
01.12.2021, 14:28
Цитата Сообщение от sawamura333 Посмотреть сообщение
1 File2.txt 12 12 12 12 2 -2 0.5
1 не нужна, так упростил бы жизнь другим прописав туда размер массива, чтоб сразу узнать сколько чисел прочесть, и последний не нужен или это для ответа, чтоб могли подглядеть ответ
6 File2.txt 12 12 12 12 2 -2 0.5 так будет понятно какого размера массив создать да еще сколько прочитать
0
0 / 0 / 0
Регистрация: 12.01.2021
Сообщений: 35
01.12.2021, 14:37  [ТС]
marat_miaki, Подскажите, пожалуйста, а как тогда "оформить" динамический массив?
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
01.12.2021, 14:47
C++
1
2
char m_str** = new char*[n];
for(int i=0; i<n; ++i) m_str[i] = new char[m];
Потом в обратном порядке освободить память.
0
518 / 410 / 188
Регистрация: 08.04.2013
Сообщений: 1,750
01.12.2021, 15:33
Образцы (шаблоны) программ для типовых задач

Добавлено через 3 минуты
Прочли
C++
1
2
3
4
5
6
7
void readTxtFile (int* M,int n, ifstream& inFile, string & str){
int i = 0;
inFile >> str;  // название файла
while (inFile >> M[i++])  // прочли неудачно, пенка ..
    if (i==n) break;
 
};
используем
C++
1
2
3
    readTxtFile (A,n,filein,name);
 
     outFile.open(name,ios_base::out);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.12.2021, 15:33
Помогаю со студенческими работами здесь

Записать цифры целого числа в динамический массив
Самостоятельно реализуйте программу, в которой введённое пользователем неотрицательное целое число записывается в malloc-массив его цифр,...

В динамический массив записать геометрическую прогрессию до числа n.Не могу разобраться с условием.
#include&lt;stdio.h&gt; #include&lt;conio.h&gt; #include&lt;stdlib.h&gt; int main() { int i,j,n,m,*p,q; printf(&quot;Vvedite n:&quot;); ...

Как записать динамический массив в файл
есть такой массив double *****massiv_resultatov = new double****; for(i = 0; i &lt; 25; i++) massiv_resultatov = new double***; ...

Как записать объекты в динамический массив?
Здравствуйте, такой вопрос, как записать некоторое кол-во объектов в динамический массив? К примеру у меня есть изначально в массиве 1...

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


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru