|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
02.02.2008, 16:22 | #1 |
Пользователь
Регистрация: 02.02.2008
Сообщений: 25
|
Работа со строками типа Char
Всем привет!
немогу понять что не правельно есть функция которая возвращет значение по ключу из файла пример текстового файла: Имя=Иван Фамилия=Иванов Телефон=911 функция работает так: char *name; name=ReadFileKey("Test.ini","Имя"); printf (%s",name); и функция рабоет возвращет результат: Иван ___________________ Но почемуто при таком вызове char *name; char *soname; char *tel; name=ReadFileKey("Test.ini","Имя"); soname=ReadFileKey("Test.ini","Фами лия"); tel=ReadFileKey("Test.ini","Телефон "); printf (%s %s %s",name,soname,tel); результат такой: 911 911 911 т.е. возвращет только последние данный а если так писать то норма: char *name; char *soname; char *tel; name=ReadFileKey("Test.ini","Имя"); printf (%s ",name); soname=ReadFileKey("Test.ini","Фами лия"); printf (%s ",soname); tel=ReadFileKey("Test.ini","Телефон "); printf (%s ",tel); ну таки это видимо я не правельно записываю переменные типа чар? вот весь код: Код:
|
02.02.2008, 16:38 | #2 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
Как static не надо переменные в функции описывать, они тогда сохраняют значение между вызовами.
|
02.02.2008, 17:09 | #3 |
Пользователь
Регистрация: 02.02.2008
Сообщений: 25
|
т.е.
static char bf[1024], ret[1024]; static char *p, *p2; => char bf[1024], ret[1024]; char *p, *p2; если да ( то ничего не произашло) так все и осталось! может я переменные не так инициализируую проверь плиз! и вот еще новый вопрос чтобы использовать MFC классы какие надо инклуды подключать? ПС использую ВизуалСтудиоНет 7 версии |
02.02.2008, 17:24 | #4 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
Возвращать указатели на локальные переменные - бессмысленное занятие. Статические переменные лежат в сегменте и каждый вызов функции пишет (и читает) разные данные в одно и тоже место, поэтому там 911 всё время и выходило. Локальные переменные при вызове функции размещаются в стеке и после выхода из нее нет никакой гарантии, что от них что-то останется, тем более, что компилятор вставляет при входе/выходе в функцию невидимые вызовы специальных функций. Нужно в функции выделять память через alloc, malloc, calloc, new, HeapAlloc, VirtualAlloc и т.д. и возвращать указатель на эту память. Потом, когда она уже не нужна, естественно, ее освобождать. Чтобы в VS "подключить" MFC нужно просто создать проект MFC, во избежание лишней мороки.
|
02.02.2008, 19:45 | #5 |
Пользователь
Регистрация: 02.02.2008
Сообщений: 25
|
Спасибо!
ясно! В принципе я почитал про МФК и там как раз есть те функции которые мне нужны (типо работа с ини файлами) как создать и настроить проект я уже понял! теперь еще пару вопросов нет ли у когонить информации как написать консольное приложение работающее с FTP сервером (может новую тему создать? ) я нашел несколько примеров но там с интерфесом приложения которые наследуется от графических компонентов а мне надо имменно консольное! зарание благодарен! |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Работа со строками. | ViNcHeStEr | Помощь студентам | 6 | 29.06.2008 08:14 |
С, работа со строками | Надюха | Помощь студентам | 2 | 29.05.2008 13:07 |
Есть таблица - В ней три поля int, char, char нужно чтобы данные заносились в таблицу Mysql | Muahahaha | PHP | 8 | 27.03.2008 11:17 |