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

Считать строку в динамический массив

07.07.2010, 18:03. Показов 6562. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
помогите считать строку цифр неизвестной длины и перевести в массив целых чисел , код на си обычном
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.07.2010, 18:03
Ответы с готовыми решениями:

Считать матрицу в динамический массив
Есть функция для статического массива, как ее переделать в динамический? в файле матрица: 4 4 4 4 4 4 4 4 4 4 4 4...

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

Считать квадратную матрицу в динамический массив.
нужно просто считать квадратную матрицу в динамический массив. Вот реализация кода: int main() { int range = 3; double **matrix =...

9
Эксперт С++
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
07.07.2010, 18:07
Мутная какая-то формулировка.... Строка цифр, пусть даже неизвестной длины, - это всего-лишь одно число! Откуда же тут массиву взяться???

Уточни формулировку. Ну и, конечно же, чем конкретно помочь? Где твой код, какие ошибки, что не получается?
0
4 / 4 / 0
Регистрация: 04.12.2009
Сообщений: 134
07.07.2010, 18:19  [ТС]
у меня есть функция которая считывает из файла последовательность чисел , эти числа надо записать в массив , в каждой ячейке по одному числу, когда я считываю у меня определен размер 1000, а нужно чтобы размер выделялся автоматически
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
int file_read(char Buf[1000]){
        int len;
        
        FILE *fp;
        fp=fopen("C:\\name.txt", "r"); 
        if (fp==0)
        {
                printf("файл не найден\n");
                exit(1);
        }
        fgets(Buf, 1000, fp);
        len = strlen(Buf);
 
        printf("данная последовательность:\n");
        for(i=0; i<len; i++){
             Buf[i] -= '0';
             printf("%c", Buf[i]);
                        }
        printf(" \n");
        return Buf[i],i;
        fclose(fp);}
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
07.07.2010, 18:59
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

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
34
35
36
37
38
39
40
41
42
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
        int len=0;
        int num=0;
        char*Buf;
                
        FILE *fp;
        fp=fopen("D:\\name.txt", "r"); 
        if (fp==0)
        {
            printf("файл не найден\n");
            exit(1);
        }
        while(!feof(fp))
        {
            fgetc(fp);
            num++;
        }
        fclose(fp);
        fp=fopen("D:\\name.txt", "r"); 
        if (fp==0)
        {
            printf("файл не найден\n");
            exit(1);
        }
        Buf=new char[num];
        while(!feof(fp))
                fgets(Buf, num, fp);
                len = strlen(Buf);
 
                printf("Posled:\n");
                for(int i=0; i<len; i++){
                         Buf[i] -= '0';
                         printf("%d", Buf[i]);
                                                }
                printf(" \n");
                  fclose(fp);
                return 0;
}
0
4 / 4 / 0
Регистрация: 04.12.2009
Сообщений: 134
07.07.2010, 19:38  [ТС]
а зачем два раза открывать файл??
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
07.07.2010, 19:49
suv121, Чтобы на начало файла поставить снова. Как это делается без закрытия/открытия не помню
0
4 / 4 / 0
Регистрация: 04.12.2009
Сообщений: 134
08.07.2010, 11:12  [ТС]
а как сделать чтобы в функцию file_read поступал динамический массив , а то у меня в меэйне статический
и как в ранс двухмерный массив задать динамически
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
void runs(int *B,int v){    
    int j,k=0,i;
    int m[2][20];
    
    i=0;
    while(i<=v-1){
        j=i;
        while(B[j]==B[i]){        
            j++;
            k++;}
            if(B[i]==0){m[0][k]++;}
            else{m[1][k]++;}
            k=0;
            i=j;}
    
 
 
for(i=0;i<2;i++){
    
    printf("\n последовательности из %d  :\n", i );
    for(j=1;j<11;j++)
        printf("по %d %d\n", j,m[i][j]);
}
    }
 
 
/*функция считывания из файла последовательности*/
int file_read(char *Buf){
        int len,num=0;
        
        FILE *fp;
        fp=fopen("D:\\name.txt", "r"); 
        if (fp==0)
        {
            printf("файл не найден\n");
            exit(1);
        }
                while(!feof(fp))
                {
                        fgetc(fp);
                        num++;
                }
                fclose(fp);
                fp=fopen("D:\\name.txt", "r"); 
        if (fp==0)
        {
            printf("файл не найден\n");
            exit(1);
        }
                Buf=new char[num];
                while(!feof(fp))
                fgets(Buf, num, fp);
                len = strlen(Buf);
 
                printf("Posled:\n");
                for(int i=0; i<len; i++){
                         Buf[i]-= '0';
                         printf("%d", Buf[i]);
                                                }
                printf(" \n");
        return Buf[i];
        fclose(fp);}
 
int main()
{
    setlocale(LC_CTYPE,"RUS");
        char A[1000];
        int i,k,n=0,m,v,B[160];
        file_read(A);
        printf("\n двоичное представление:\n");
        
        for(m=0;m<1000;m++){
            if(A[m]==NULL)
                break;
        else 
            for(i=3;i>=0;--i){
                    printf("%d", B[n]=(A[m]>>i)&1);
                    n++;
                    v=n;}}
        printf("\nразмер=%d",v);
 
 
        printf("\n");
        printf("\n выберете вариант анализа:\n 1.frequency test\n 2.runs test\n 3.выход\n\n");
        int q;
M1:scanf("%d", &q);
if(q==1){
    frequency(B,v);
printf(" для выхода нажмите три или ");}
if(q==2){
    runs(B,v);
printf(" для выхода нажмите три или ");}
if(q==3){
    return 0;}
else{printf("введите другое число\n");
goto M1;}
}
0
3 / 3 / 0
Регистрация: 06.07.2010
Сообщений: 18
08.07.2010, 16:30
Цитата Сообщение от Lavroff Посмотреть сообщение
suv121, Чтобы на начало файла поставить снова. Как это делается без закрытия/открытия не помню
int fseek ( FILE *stream, int offset [, int whence] ), где:
stream - указатель на открытый файл;
offset - смещение, измеряемое в байтах от начала файла;
whence - точка, от которой производится смещение:
SEEK_SET (0) - начало файла ;
SEEK_CUR (1) - позиция текущего указателя файла ;
SEEK_END (2) - конец файла (EOF) ;
1
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
08.07.2010, 16:41
"... Или, если хочешь, скажу проще..." (с)
#include <stdio.h>
void rewind(FILE *stream);

Функция rewind() перемещает указатель текущей позиции файла в начало заданного потока. Она также очищает связанные с потоком stream признаки конца файла и ошибок.
1
3 / 3 / 0
Регистрация: 06.07.2010
Сообщений: 18
08.07.2010, 16:51
Цитата Сообщение от suv121 Посмотреть сообщение
а как сделать чтобы в функцию file_read поступал динамический массив , а то у меня в меэйне статический
и как в ранс двухмерный массив задать динамически
Если в мэйне ты создал статический массив, то передать его как динамический ты не сможешь, единственный вариант - перед передачей массива в функцию, создать динамический массив и передавать уже его...

Объявление двумерного динамического массива:
C++
1
2
3
4
5
int**x=new int*[2];
for(int i=0;i<2;i++)
{
x[i]=new int[20];
}
вроде бы так...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.07.2010, 16:51
Помогаю со студенческими работами здесь

Не могу считать матрицу из файла в динамический массив
Вот проблемный кусок программы: fstream f (strConst); if (! f) { cout&lt;&lt;&quot;Error_3&quot;; return 1; } int...

Файл: Считать все числа из файлав динамический массив
&quot;Считать все числа из файла(количество чисел в файле - произвольное) в динамический массив(целые числа). В программе предусмотреть функции,...

Считать строки файла и поместить в динамический массив строк
Ребята помогите. Нужно считать с файла, в котором 1 строка - 1 слово, строки и поместить их в динамический массив строк типа char...

Считать данные из файла в динамический массив соответствующего типа
Здравствуйте. Тема динамические структуры. Считать данные из файла в динамический массив соответствующего типа. 1) В файле целых...

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


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru