С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/29: Рейтинг темы: голосов - 29, средняя оценка - 4.55
7 / 7 / 3
Регистрация: 30.08.2011
Сообщений: 48

Преобразование char[256] в char*

06.11.2011, 09:24. Показов 5819. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как преобразовать char[256] в char*?
1
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.11.2011, 09:24
Ответы с готовыми решениями:

Сделать преобразование unsigned char в char, а затем типу int
Здраствуйте, есть вопрос: Число представлено двумя полями: типа long для рублей и unsigned char - для копеек. Собственно что мне...

Преобразование char в char* или разделить на две строки
Пытаюсь сделать программу под linux. Возникла проблема, описанная в заголовке. Мне нужно разделить строку в char на две по символу ? либо...

Char unsigned char signed char длинна Кааак
Здравствуйте. char l = {0,0}; l = 0xff; Почему, меня, компилятор не посылает куда подальше. Нет он конечно...

17
 Аватар для programina
2062 / 619 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
06.11.2011, 09:31
Никак. Если я не ошибаюсь, то char* - это указатель на переменную, а char[256] - сама переменная.
1
7 / 7 / 3
Регистрация: 30.08.2011
Сообщений: 48
06.11.2011, 09:39  [ТС]
Цитата Сообщение от programina Посмотреть сообщение
Никак. Если я не ошибаюсь, то char* - это указатель на переменную, а char[256] - сама переменная.
Ну вот к примеру код.

C
1
2
3
4
5
6
7
8
9
10
11
12
13
    char out[256];
    SceUID fd = sceIoOpen("С:/file.dat", PSP_O_RDONLY, 777);
    if(fd > 0)
    {
        int size = sceIoLseek(fd, 0, PSP_SEEK_END);//перемещение к конечному адресу файла для определения размра.
        sceIoLseek(fd, 0, PSP_SEEK_SET);//в начало файла
        sceIoRead(fd, &out, size);//чтение
 
        int i;
        for(i = 0; i < size; i++)
            msglog("%c", out[i]);//вывод массива по очереди
    }
    sceIoClose(fd);
А мне хочется выводить вот так...

C
1
printf("%s", out);//а вот тут канает только char* out;
0
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
06.11.2011, 09:43
Цитата Сообщение от Frostegater Посмотреть сообщение
а вот тут канает только char* out
да ладно?
C
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int main(void)
{
    char c[256];
    strcpy(c, "Hello, World!");
 
    printf("%s\n", c);
        
    exit(0);
}
1
Higher
 Аватар для diagon
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
06.11.2011, 09:44
Цитата Сообщение от Frostegater Посмотреть сообщение
printf("%s", out);//а вот тут канает только char* out;
Это почему? char[256] out; тоже будет работать.
1
 Аватар для programina
2062 / 619 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
06.11.2011, 10:15
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
#include <conio.h>
 
int main()
{
    FILE* fd = fopen("test.txt", "rt");
    int size = 100;
    int i = 0;
    char out[256];
 
    for(i = 0; i < size; i++)
    {
        fscanf( fd, "%c", &out[i] );
        printf("%c\n", out[i]);
    }
 
    fclose(fd);
    getch();
    return 0;
}
у меня работает
1
7 / 7 / 3
Регистрация: 30.08.2011
Сообщений: 48
06.11.2011, 10:46  [ТС]
Хм... у меня почему-то крешится... ладно.. я уже другой выход нашёл.. всем спасибо.
0
1080 / 1007 / 107
Регистрация: 28.02.2010
Сообщений: 2,889
06.11.2011, 10:48
Frostegater, у Вас случайно не PSP-шный компилятор?
0
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
06.11.2011, 10:51
Цитата Сообщение от Frostegater Посмотреть сообщение
Хм... у меня почему-то крешится
может, функция sceIoRead не дописывает в строку символ '\0'?
1
7 / 7 / 3
Регистрация: 30.08.2011
Сообщений: 48
06.11.2011, 11:02  [ТС]
Цитата Сообщение от Евгений М. Посмотреть сообщение
Frostegater, у Вас случайно не PSP-шный компилятор?
Так и есть.. pspsdk... пишем плагин XMBControl v1.5, вот там после того как появилась PSPgo, появился новый стораж Extended Flash (ef0:/). Вот поэтому и необходимо сделать детект текущего стоража. А вот в чём загвоздка... При загрузе стороннего исполняемого файла PRX из буффера аргументы сходят на null. argp и argv[0] всё null, т.к. рузится то из буффера. Я нашёл таковой выход, записать из лоадера файл с путём (единственный "корневой" PRX, в котором арги пашут), а потом его читать сторонними. Хотел сперва ещё завязать на Kernel Stub's (експорты).. да подумал чё мозги *****.. ))) Сорри за ПСПдевский жаргон.

___
А вы под псп тоже писали?
0
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
06.11.2011, 11:18
Цитата Сообщение от Nameless One Посмотреть сообщение
может, функция sceIoRead не дописывает в строку символ '\0'?
если это так, то проблему можно решить двумя способами:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
#define SIZE 600
 
int main(void)
{
    char c[SIZE];
    size_t cnt = fread(c, 1, SIZE, stdin);
 
    fwrite(c, 1, cnt, stdout);  /* воспользоваться двоичным выводом */
 
    printf("%.*s", cnt, c); /* указать спецификатор точности
                 * для форматного вывода */
                    
    exit(0);
}
0
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
06.11.2011, 11:23
Цитата Сообщение от Nameless One Посмотреть сообщение
если это так, то проблему можно решить двумя способами:
А можно полностью обнулить буфер перед записью
1
06.11.2011, 11:29

Не по теме:

Цитата Сообщение от fasked Посмотреть сообщение
А можно полностью обнулить буфер перед записью
точно

0
1080 / 1007 / 107
Регистрация: 28.02.2010
Сообщений: 2,889
06.11.2011, 11:42
Цитата Сообщение от Frostegater Посмотреть сообщение
А вы под псп тоже писали?
Нет. Вы в какой-то другой теме говорили про ef0:/, типа это PSP-шная вещь и в этой я увидел макросы, которые напоминают слово PSP. Ну вот я подумал, почему у Вас так странно ведет себя printf, когда по идее должна вести себя "как обычно".
В таком случае я советую обратиться в форум по pspsdk и узнать почему такое происходит.
0
7 / 7 / 3
Регистрация: 30.08.2011
Сообщений: 48
06.11.2011, 11:49  [ТС]
Цитата Сообщение от Евгений М. Посмотреть сообщение
Нет. Вы в какой-то другой теме говорили про ef0:/, типа это PSP-шная вещь и в этой я увидел макросы, которые напоминают слово PSP. Ну вот я подумал, почему у Вас так странно ведет себя printf, когда по идее должна вести себя "как обычно".
В таком случае я советую обратиться в форум по pspsdk и узнать почему такое происходит.
printf - это pspDebugScreenPrintf(char *fmt, ...); =)
0
0 / 0 / 0
Регистрация: 15.03.2014
Сообщений: 71
22.01.2015, 08:44
Неужели, и правда невозможно преобразовать char[<const>] в char*? Я, например, пытался изменить адрес первого элемента массива на тот, который содержится в char*. Не работает, но не понимаю, почему. Потому, может, что каждый элемент массива содержит собственный адрес? Да вряд ли. Не уж-то никто не сталкивался?
0
Эксперт по математике/физикеЭксперт С++
 Аватар для Ilot
2223 / 1425 / 420
Регистрация: 16.05.2013
Сообщений: 3,642
Записей в блоге: 6
22.01.2015, 09:06
Цитата Сообщение от Icerfog Посмотреть сообщение
Неужели, и правда невозможно преобразовать char[<const>] в char*?
Это реализованно на уровне компилятора и описанно в любой книге по сям.
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
22.01.2015, 10:06
Цитата Сообщение от Icerfog Посмотреть сообщение
каждый элемент массива содержит собственный адрес? Да вряд ли
Эмм.. А почему вряд ли?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.01.2015, 10:06
Помогаю со студенческими работами здесь

Ошибка: "char *concat(char *,.)": невозможно преобразовать аргумент 1 из "const char [4]" в "char *"
делал задание, но на строке 36 строке пишет, что &quot;char *concat(char *,...)&quot;: невозможно преобразовать аргумент 1 из &quot;const char &quot;...

(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&
astxx::manager::connection::connection(std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;, unsigned short); ...

Преобразование к char*
Переведите, пожалуйста, на русский язык, что значит эта строчка: (char*)&amp;var Если я правильно понимаю, то это: &quot;передать как...

Преобразование в char
Добрый вечер. Как сделать, чтобы работало: fstream outStream; double z, dz; ... outStream.open(&quot;points/&quot; + (char)(z/dz) +...

Однонаправленные списки. [Error] incompatible types in assignment of 'char*' to 'char [128]'
Доброго времени суток. Начал учить однонаправленные списки, но столкнулся с проблемой: incompatible types in assignment of 'char*' to...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru