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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 24, средняя оценка - 4.67
almostclever
1 / 1 / 0
Регистрация: 04.03.2012
Сообщений: 101
#1

Перевод char массива в int массив - C++

09.05.2012, 18:02. Просмотров 4364. Ответов 6
Метки нет (Все метки)

Делаю так:
C
1
2
3
4
int inmas[40];
char outmas[40];
fgets(outmas,40,write);
outmas2=atoi(outmas);
Пишет что типы несовместимы.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.05.2012, 18:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перевод char массива в int массив (C++):

Массив char + перевод в int - C++
Нужно создать цикл в котором при вводе с клавиатуры символа в 16ричной системе (0-F) это число: 1. Переводилось в 10-ю систему счисления,...

Перевод массива из char в int - C++
есть массив символьного типа. нужно перевести его в тип int для того, что бы далее производить над ним действия уже как с цифрами. как это...

Перевод int в символьный массив char - C++
Помогите плз реализовать алгоритм перевода целого числа в символьный массив.. К примеру: дано число int a=1234; нужно чтобы в...

Перевод элементов массива char в int - C++
Задача о золотом песке. Во входном файле 6 чисел, первые три стоимость за килограмм каждого вида песка, вторые - масса которую вмещает...

Перевод числа из массива char в целочисельное значение int - C++
Приведу пример: char* pDigit = new char; cin>>pDigit; предположим человек вводит: "432dollars" как в данном случае достать...

первод массива char в массив int ( в чем ошибка?????) - C++
не могу понять почему не работает функция void StrToIntMass (int element, char buffer) { int k = 0,j = 0; char...

6
modwind
52 / 52 / 1
Регистрация: 09.03.2012
Сообщений: 101
09.05.2012, 19:42 #2
C++
1
2
3
4
5
6
int inmas[40];
char outmas[40];
int i;
fgets(outmas,40,write);
for (i=0; i<40; i++)
    inmas[i]=outmas[i];
1
almostclever
1 / 1 / 0
Регистрация: 04.03.2012
Сообщений: 101
09.05.2012, 19:46  [ТС] #3
у меня потом идет функция ко всему массиву, я же смогу ее использовать?
C
1
sort2(inmas,size);
0
almostclever
1 / 1 / 0
Регистрация: 04.03.2012
Сообщений: 101
12.05.2012, 14:37  [ТС] #4
Сделал как предложено сверху, но не работает, в файл записывается к примеру 654 а в инт массиве получаются вообще двузначные числа.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
srand(time(NULL)); //каждый раз случайные числа
    printf("\nВведите размер массива: ");
    scanf("%d",&size);
    int inmas[size];
    char outmas[size];
    FILE *write;
    write=fopen("1.txt","w");
    for(i=0;i<size;i++)
    {
    inmas[i]=rand()%10;
    fprintf(write,"%d",inmas[i]);
    }
    fclose(write);
    write=fopen("1.txt","r");
    fgets(outmas,size,write);
    printf("\nМассив:");
    for (i=0; i<size; i++)
    {
    inmas[i]=outmas[i];
    printf("%d",inmas[i]);
    }
пробовал еще так:
C
1
inmas[i]=atoi(outmas[i]);
0
modwind
52 / 52 / 1
Регистрация: 09.03.2012
Сообщений: 101
12.05.2012, 15:36 #5
fgets считывает строку, оканчивающуюся символом \0. Буфер outmas должен быть на 1 байт длиннее.
C++
1
2
char outmas[size+1];
fgets(outmas,size+1,write);
Если в файл записываются только цифры (однозначные числа) в текстовом виде, можно сделать так:
C++
1
inmas[i] = outmas[i]-0x30;
или так:
C++
1
2
3
fgets(outmas,size,write);
printf("\nМассив:");
printf(outmas);
1
almostclever
1 / 1 / 0
Регистрация: 04.03.2012
Сообщений: 101
12.05.2012, 16:46  [ТС] #6
Когда делаю вашим способ,в конце массива появляется число -48.
Массив должен будет заполнять числами до 99.
(а +1 к сайзу у меня было, просто копипастнул неудачно)
0
modwind
52 / 52 / 1
Регистрация: 09.03.2012
Сообщений: 101
12.05.2012, 18:28 #7
в конце массива появляется число -48
Логично. Это от нулевого символа завершения строки в конце. Его не надо пытаться интерпретировать. Проверьте, где-то +1 к размеру было лишним.
2
12.05.2012, 18:28
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.05.2012, 18:28
Привет! Вот еще темы с ответами:

Перевод *char в int[] c++ - C++
Нужно перевести длинное число которое хранится в виде &quot;+/-324354365654656&quot; в char* в массив int. Нулевой элемент массива знак. Как...

Перевод из char в int - C++
нужно перевести из char в int, способ перевода следующий: &quot;значение цифры равно значению ее символа в таблице символов компьютера...

Перевод из int в char - C++
Пытаюсь перевести число int в строку char. На экран постоянно выводит какие-то иероглифы. Не могли бы вы ОБЪЯСНИТЬ почему так? Код мое...

Перевод char в int - C++
Доброго времени суток. покопался по схожим темам,но так и не нашёл ответа. На вводе с клвиатуры подаётся char-овский массив сстоящийиз...


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

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

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