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

Строки в классе. Объясните, пожалуйста - C++

Восстановить пароль Регистрация
 
Unreal_Reality
0 / 0 / 0
Регистрация: 09.04.2013
Сообщений: 8
11.11.2013, 16:33     Строки в классе. Объясните, пожалуйста #1
Строка задается в классе, используется одной функцией, а инициализируется другой.
При компиляции программа ошибок не пишет, но не рабjтает. Объясните, в чем дело, пожалуйста.

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
class Zodiak
{
    int day, month, year;
    
public:
    char *name;
...
void openfiles();
void znak();
....}
void openfiles()
{
ifstream inf;
inf.open(name);
}
void znak()
{
 
    if ( (month == 3 && day >= 21) || (month == 4 && day <= 20) )
    {cout<<"pyfr\n";    
    char* oven = "D:\file.txt";
    strcpy(name,oven);}
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.11.2013, 16:33     Строки в классе. Объясните, пожалуйста
Посмотрите здесь:

C++ объясните пожалуйста
C++ Объясните пожалуйста. Поле а классе объявлено, однако пишет обратное
C++ Объясните пожалуйста
Объясните пожалуйста C++
Объясните пожалуйста C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5549 / 2563 / 233
Регистрация: 01.11.2011
Сообщений: 6,334
Завершенные тесты: 1
11.11.2013, 16:40     Строки в классе. Объясните, пожалуйста #2
Цитата Сообщение от Unreal_Reality Посмотреть сообщение
При компиляции программа
А покажите пожалуйста код программы, а не просто описание класса.
(и вон там многоточия в седьмой и десятой строке я полагаю вы убираете при компиляции?)
Unreal_Reality
0 / 0 / 0
Регистрация: 09.04.2013
Сообщений: 8
11.11.2013, 17:44  [ТС]     Строки в классе. Объясните, пожалуйста #3
Многоточия - это другие функции, они к данному вопросу отношения не имеют.
А вызываю функцию более чем стандартно:
Class a;
a.input();
a.znak();

Добавлено через 31 минуту
Просто скажите мне, как открыть файл через функцию openfile(), если имя файла определяется в другой функции znak()&
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
11.11.2013, 18:26     Строки в классе. Объясните, пожалуйста #4
а если
C++
1
const char* oven = "D:\\file.txt";
Добавлено через 45 секунд
и чем не угодила std::string?
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5549 / 2563 / 233
Регистрация: 01.11.2011
Сообщений: 6,334
Завершенные тесты: 1
11.11.2013, 18:29     Строки в классе. Объясните, пожалуйста #5
Двадцать первая строка:
Цитата Сообщение от Unreal_Reality Посмотреть сообщение
char* oven = "D:\file.txt";
Надо D:\\file.txt
Unreal_Reality
0 / 0 / 0
Регистрация: 09.04.2013
Сообщений: 8
11.11.2013, 21:27  [ТС]     Строки в классе. Объясните, пожалуйста #6
warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files (x86)\microsoft visual studio 10.0\vc\include\string.h(105): см. объявление "strcpy"
This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. - Предупреждение, которое выдает компилятор.

Добавлено через 2 часа 22 минуты
Насколько я поняла, это предупреждение не несет особой значительной нагрузки. Но программа отчего-то вылетает.... При этом появляется окошечко с надписью "Нарушение прав доступа при записи "0xcccccccc". И никакой текст не выводится...
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5549 / 2563 / 233
Регистрация: 01.11.2011
Сообщений: 6,334
Завершенные тесты: 1
12.11.2013, 09:01     Строки в классе. Объясните, пожалуйста #7
Попробуйте
C++
1
2
3
4
5
6
7
8
9
10
11
class Zodiak
{
public:
    //char *name;
    char n[];
 
........
 
void Zodiak::znak()
{  
strcpy(n, oven);
или
C++
1
2
3
4
5
6
7
8
9
10
11
class Zodiak
{
public:
    char *name;
    //char n[];
 
........
 
void Zodiak::znak()
{  
name = oven;
Unreal_Reality
0 / 0 / 0
Регистрация: 09.04.2013
Сообщений: 8
12.11.2013, 14:56  [ТС]     Строки в классе. Объясните, пожалуйста #8
SatanaXIII,
не помогает...
У меня есть предположение, что проблема заключается в памяти, что я не выделила памяти под эти строки...

Добавлено через 10 минут
Кто-нибудь может мнем с этим помочь? Толково объяснить про malloc и new? Нужны ли они здесь?
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5549 / 2563 / 233
Регистрация: 01.11.2011
Сообщений: 6,334
Завершенные тесты: 1
12.11.2013, 14:59     Строки в классе. Объясните, пожалуйста #9
Используйте std::string или char[80].
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.11.2013, 15:27     Строки в классе. Объясните, пожалуйста
Еще ссылки по теме:

C++ Товарисчи объясните пожалуйста как сделать данную задачу! (Найти наибольший элемент каждой строки А(4,6) и записать их в массив Y)
Объясните пожалуйста! C++
Объясните пожалуйста C++

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

Или воспользуйтесь поиском по форуму:
Unreal_Reality
0 / 0 / 0
Регистрация: 09.04.2013
Сообщений: 8
12.11.2013, 15:27  [ТС]     Строки в классе. Объясните, пожалуйста #10
SatanaXIII,
Я сделала char name[80] не вылетает, текст не выводится, но тут, я думаю, проблема заключается в другом. Спасибо вам!
Yandex
Объявления
12.11.2013, 15:27     Строки в классе. Объясните, пожалуйста
Ответ Создать тему
Опции темы

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