Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
VIPerZ
7 / 7 / 0
Регистрация: 26.02.2011
Сообщений: 69
#1

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

07.05.2012, 17:36. Просмотров 476. Ответов 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 фреймворком
Миниатюры
проблема с массивом типа CHAR  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.05.2012, 17:36     проблема с массивом типа CHAR
Посмотрите здесь:

Проблема с классом и массивом char-ов C++
C++ проблема с переменной типа char
C++ Работа с массивом char
C++ Работа с массивом char
Проблема с динамическим массивом C++
C++ проблема с массивом
Помощь с массивом char breed[4] = {'Dog ','Cat ', 'Rat ', 'Mouse '} C++
Проблема с массивом C++
C++ Проблема с массивом.
C++ Проверка массива char на равенство с таким же массивом
Работа с массивом символов Char C++
C++ Объяснить разницу между массивом типа char и строкой в стиле Си (нюансы использования нуль-терминатора)

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
6123 / 5726 / 1852
Регистрация: 18.12.2011
Сообщений: 14,629
Завершенные тесты: 1
07.05.2012, 18:28     проблема с массивом типа CHAR #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);
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,586
Записей в блоге: 12
07.05.2012, 18:36     проблема с массивом типа CHAR #3
Цитата Сообщение от VIPerZ Посмотреть сообщение
чём загвоздка? как мне решить эту проблему? scanf правильно заполняет такие массив, но у меня Windows Forms..спасибо.
scanf работает правильно считывает строку до втречи пробела или нулевого символа
Yandex
Объявления
07.05.2012, 18:36     проблема с массивом типа CHAR
Ответ Создать тему
Опции темы

Текущее время: 03:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru