Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
VIPerZ
8 / 8 / 2
Регистрация: 26.02.2011
Сообщений: 69
1

проблема с массивом типа CHAR

07.05.2012, 17:36. Просмотров 540. Ответов 2
Метки нет (Все метки)

нужно выполнить функцию fopen() . которая кушает на вход указатель на массив char в качестве пути к файлу ну и режим работы с файлом.

так вот, создаю массив с размером таким же, как длина пути к файлу выбранного через диалог

C++
1
2
int size = openFileDialog1->FileName->Length;
char fname[size];
и тут мне пишет этот обормот , что нужно константное выражение для размера.

окей, тогда обьявляю массив так
C++
1
char *fname = new char[size];
он это компилирует , но после того, как я запихиваю в него побуквенно путь к файлу
C++
1
2
3
4
5
System::String ^tt = this->openFileDialog1->FileName;
for (int k = 0; k < this->openFileDialog1->FileName->Length; k++)
{
       fname[k] = tt[k];
}
получаю что-то совсем не то внутри массива fname... что-то далеко не 10(в данном случае) чаров и поэтому прога не может открыть нужный мне файл..

В чём загвоздка? как мне решить эту проблему? scanf правильно заполняет такие массив, но у меня Windows Forms..спасибо.

P.S. пишу в Visual Studio 2008 под 2.0 фреймворком
0
Миниатюры
проблема с массивом типа CHAR  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.05.2012, 17:36
Ответы с готовыми решениями:

Проблема с классом и массивом char-ов
Есть класс, содержащий одномерный массив из char-ов и методы для работы с ним. Проблема возникла в...

Задание с массивом типа char
Нужно удалить все столбцы в которых есть хотя бы одна буква 'а'.Ошибка в delA,но не знаю как...

проблема с переменной типа char
int count(char a){ int c=0; int words=0; while(a!='\0'){ if(a==' ')++words; } return words;...

Объяснить разницу между массивом типа char и строкой в стиле Си (нюансы использования нуль-терминатора)
Господа, появился такой вопрос: какое место занимает \0 в массиве charов? В данном коде пытался...

Условие типа if( масив типа char[x] [y] != переменная типа char) не срабатывает
Создал функцию ChangeWay(). Все, кроме if(map !=ar) (обе переменные типа char) работает...

2
zss
Модератор
Эксперт С++
7368 / 6773 / 4285
Регистрация: 18.12.2011
Сообщений: 17,906
Завершенные тесты: 1
07.05.2012, 18:28 2
Массив, который содержит строку длиной n должен содержать
как минимум n+1 значение, чтобы в n-ый элемент записать ноль
(признак конца строки).
C++
1
2
3
4
5
6
7
8
int n=this->openFileDialog1->FileName->Length;
fname=new char[n+1];
for (int k = 0; k < n; k++)
{
       fname[k] = tt[k];
}
fname[k] = 0;
// а лучше сделать: strcpy(fname,tt);
1
Van111
212 / 191 / 22
Регистрация: 03.08.2011
Сообщений: 2,674
Записей в блоге: 12
07.05.2012, 18:36 3
Цитата Сообщение от VIPerZ Посмотреть сообщение
чём загвоздка? как мне решить эту проблему? scanf правильно заполняет такие массив, но у меня Windows Forms..спасибо.
scanf работает правильно считывает строку до втречи пробела или нулевого символа
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.05.2012, 18:36

Как полю класса типа char* присвоить значение типа *char
Проблема в строчке 46 (не пинайте сильно за формат кода и за говнокод) #include &quot;stdafx.h&quot; ...

Добавление в массив типа char * одного элемента типа char
Дан класс Строка, содержащий указатель на char - адрес динамически выделенной для размещения...

Аргумент типа char** не совместим с параметром типа const char*
Программа должна позволять заносить в структуру данные и выводить на экран информацию о поездах,...


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

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

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