Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/154: Рейтинг темы: голосов - 154, средняя оценка - 4.77
2 / 2 / 0
Регистрация: 03.04.2009
Сообщений: 44

Из char в String

05.04.2009, 16:10. Показов 30883. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Столкнулся с проблемой преобразования сабжа.
Вот кусочек кода:
C++
1
2
3
4
5
6
7
8
9
10
11
...
using namespace System;
...
 
char ch;
String^ str="";
FILE *fp; //открываю поток
fp = fopen("file.txt", "r"); //открываю файл в потоке
ch = getc(fp); //вытаскиваю символ из файла
str=str+Convert::ToString(ch); //прибавляю к строке этот символ
...
в итоге получается в строке не символ, а его числовой код.
То есть, если в файле символ 'o', то в итоге стринг выдает "111"
Подскажите, пожалуйста, как правильно выполнить преобразование?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.04.2009, 16:10
Ответы с готовыми решениями:

Подскажите, пожалуйста, как преобразовать данные из excel в string или в char*, char perm [] в visual c++
Подскажите, пожалуйста, как преобразовать данные из excel в string или в char*, char perm также для вывода на экран среда visual c++ ...

string to char*
Вопрос в следующем. У меня есть openFileDialog1. При его открытии мне нужно узнать путь файла и передать его в переменную типа char*. ...

Строка string в unsigned char
Добрый день. Есть строка string с неким перечислением символов, надо его разобрать и передать в unsigned char, делаю вот так: ...

10
125 / 123 / 0
Регистрация: 30.03.2009
Сообщений: 766
05.04.2009, 16:32
convert воспринимает твой символ как 8-битное число. пищи просто str+=ch;
0
2 / 2 / 0
Регистрация: 03.04.2009
Сообщений: 44
05.04.2009, 16:38  [ТС]
К сожалению, все равно не работает
0
125 / 123 / 0
Регистрация: 30.03.2009
Сообщений: 766
05.04.2009, 16:49
па-пааам
C++
1
2
3
char y = 'a';
String^ x= gcnew  String(&y,0,1);
MessageBox::Show(x);
выводит "а"

то есть я получил строку из символа. ну а дальше ее уже просто конкатировать
0
2 / 2 / 0
Регистрация: 03.04.2009
Сообщений: 44
05.04.2009, 16:56  [ТС]
мм, а если необходимо затем накапливать в стринге символы? как это реализовать?
0
125 / 123 / 0
Регистрация: 30.03.2009
Сообщений: 766
05.04.2009, 17:00
а сам не догадаешься??

C++
1
2
3
4
5
6
7
String^ str = gcnew String("");//будем накапливать сюда
 
 
char y = 'a';
String^ x= gcnew  String(&y,0,1);
 
str+=x; //теперь-то х - тоже типа String!
самое главное, сам же писал примерно такое в первом сообщении!!
0
2 / 2 / 0
Регистрация: 03.04.2009
Сообщений: 44
05.04.2009, 17:10  [ТС]
Не кипятитесь, я пробовал запихнуть в цикл. В итоге работало некорректно.

C++
1
2
3
4
5
6
7
char c;
String ^str=gcnew String(&c,0,1);
 
while((c=getc(fp)) != '=')
{
       str+=c;
}
0
125 / 123 / 0
Регистрация: 30.03.2009
Сообщений: 766
05.04.2009, 17:27
блин.. не так%) ладно, сам виноват, над было понятнее объяснять...

C++
1
String^ x= gcnew  String(&c,0,1);
создает новый объект типа String, которому присваивается начальное значение. смотри описание прототипа конструктора
C++
1
String(char *value, int startIndex,  int length);
я указываю в качестве СТРОКИ value указатель на символ, и копирую в качестве начального переменной Х значения 1 символ начиная с 0го индекса из строки &y. На самом-то деле &y конечно не определяет строку, это только указатель на символ, но мы и копируем 1 символ. это, конечно, читерство в некотором роде=)

так вот это я все к чему - каждый раз, когда мы считали новый символ, мы должны для него сделать СВОЮ строку командой
C++
1
String^ x= gcnew  String(&c,0,1);
. Этот кусок кода тоже надо внести в цикл!! и смотри внимательно, у тебя написано
C++
1
str+=c;
, а должно быть
C++
1
String^ x= gcnew  String(&с,0,1); str+=x;
1
2 / 2 / 0
Регистрация: 03.04.2009
Сообщений: 44
05.04.2009, 17:32  [ТС]
спасибо, теперь я разобрался=)
работает
0
125 / 123 / 0
Регистрация: 30.03.2009
Сообщений: 766
05.04.2009, 17:40
З.Ы. вообще, вся эта кучерявость решения получается из-за того, что ты смешиваешь в одной программе разные модели программирования. функция, с помощью которой ты вытаскиваешь символ из файла, была написано году эдак в 75, а класс String был создан Microsoft году эдак в 2002. Это совершенно разные концепции программирования. Это все равно что использовать для компа вместо монитора телевизор РАДУГА=)) так что советую или поучить еще .NET (класс String, это же часть .NET)и узнать, как читать файлы с помощью .NET, или вообще отказаться от этих объектов и пользоваться чистым С
0
0 / 0 / 0
Регистрация: 09.09.2010
Сообщений: 6
21.09.2010, 11:22
BrainDamaged, не подскажеш ?

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
#include "stdafx.h"
#include <iostream>
#include"windows.h"
#include <stdio.h>
#include <conio.h>
using namespace std;
void exchange(char *str)
{
    setlocale (0,"");
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
char string[1251];
    int len = strlen(str);
    int i;
    
    for (i = 0; i < len; i++)
        if (str[i] == 'А'){
            str[i] = '5';
            str[i+1]= '6';}
}
int main()
{
    char str[] = "АБВГДЕЁЖЗИКЛМНОПРСТУФХЦЧШЪЫЬЭЮЯ";
    
    exchange(str);
    
    printf("%s", str);
    
    getch();
    return 0;
}
мне нужно чтоб он не те синволы каторые заменял которые в char str[] = "АБВГДЕЁЖЗИКЛМНОПРСТУФХЦЧШЪЫЬЭЮЯ"; а те которые я введу
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.09.2010, 11:22
Помогаю со студенческими работами здесь

C++ как сравнить кавычки с char и string
В общем, приведу лучше кусочек кода, так понятнее будет) switch (buff){ case '&quot;': \\тут внутри одинарных кавычек двойная ...

есть массив char. есть строка string. как присвоить значению string-a значение char-a?
есть массив char. есть строка string. как присвоить значению string-a значение char-a?

Передача в функцию char*([Warning] deprecated conversion from string constant to 'char*' [-Wwrite-strings])
Почему компилятор на это матерится? ObjA.Show(&quot;A&quot;); deprecated conversion from string constant to 'char*' #include &lt;iostream&gt;...

Строка: чем отличается строки string, char, char*?
Помогите разобраться,совсем плохо идёт,чем отличается строки string,char,char* И если можно пару примеров Буду весьма признательна

Как преобразовать char* в string и вывести переменную string на экран?
for (int k = 0; k &lt; 10; k++) { int x = (int)rand() / RAND_MAX + rand() % 6 + 2; char *chars = new char; ...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
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