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

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

Восстановить пароль Регистрация
 
VIPerZ
7 / 7 / 0
Регистрация: 26.02.2011
Сообщений: 69
07.05.2012, 17:36     проблема с массивом типа CHAR #1
нужно выполнить функцию 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
Аргумент типа char (*)[1000] несовместим с параметром типа char** C++
Аргумент типа WCHAR* не совместим с параметром типа const char* C++
C++ Читать строку типа string из файла, разбить ее на массив слов типа char
Аргумент типа "unsigned char*" несовместим с параметром типа "const char*" C++
C++ Ошибка "аргумент типа char несовместим с параметром типа char*"

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
5947 / 5552 / 1784
Регистрация: 18.12.2011
Сообщений: 14,184
Завершенные тесты: 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,585
Записей в блоге: 12
07.05.2012, 18:36     проблема с массивом типа CHAR #3
Цитата Сообщение от VIPerZ Посмотреть сообщение
чём загвоздка? как мне решить эту проблему? scanf правильно заполняет такие массив, но у меня Windows Forms..спасибо.
scanf работает правильно считывает строку до втречи пробела или нулевого символа
Yandex
Объявления
07.05.2012, 18:36     проблема с массивом типа CHAR
Ответ Создать тему
Опции темы

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