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

Вывод char из функции - C++

Восстановить пароль Регистрация
 
 
Fene4ka_
84 / 84 / 16
Регистрация: 24.01.2014
Сообщений: 1,142
24.01.2014, 19:36     Вывод char из функции #1
выводит первую букву слово, подскажите ошибку ...

исполняемый файл
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include "stdafx.h"
#include "Header.h"
#include <iostream>
using namespace std;
 
char words::GetCount() const
{
    return *count;
}
 
void words::SetCount()
{
    cin.getline(count, 256);
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gromo
 Аватар для gromo
366 / 265 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
24.01.2014, 19:44     Вывод char из функции #2
Цитата Сообщение от Fene4ka_ Посмотреть сообщение
C++
1
2
3
4
char words::GetCount() const
{
return *count;
}
C++
1
2
3
4
char words::GetCount() const
{
     return count;
}
если мои телепатические способности не подвели
Fene4ka_
84 / 84 / 16
Регистрация: 24.01.2014
Сообщений: 1,142
24.01.2014, 19:46  [ТС]     Вывод char из функции #3
также работать не будет
ValeryS
Модератор
6376 / 4842 / 442
Регистрация: 14.02.2011
Сообщений: 16,045
24.01.2014, 19:49     Вывод char из функции #4
Цитата Сообщение от Fene4ka_ Посмотреть сообщение
C++
1
2
3
4
char words::GetCount() const
{
    return *count;
}
функция может вернуть число(символ) char
если count это строка
то нужно вернуть указатель на неё
C++
1
2
3
4
char * words::GetCount() const
{
   return count;
}
gromo
 Аватар для gromo
366 / 265 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
24.01.2014, 19:50     Вывод char из функции #5
Цитата Сообщение от ValeryS Посмотреть сообщение
если count это строка
то нужно вернуть указатель на неё
а я и не заметил)
Fene4ka_
84 / 84 / 16
Регистрация: 24.01.2014
Сообщений: 1,142
24.01.2014, 19:51  [ТС]     Вывод char из функции #6
Цитата Сообщение от ValeryS Посмотреть сообщение
функция может вернуть число(символ) char
если count это строка
то нужно вернуть указатель на неё
C++
1
2
3
4
char * words::GetCount() const
{
   return count;
}
ругается компилятор
Error 1 error C2440: 'return' : cannot convert from 'const char [256]' to 'char *'
ValeryS
Модератор
6376 / 4842 / 442
Регистрация: 14.02.2011
Сообщений: 16,045
24.01.2014, 19:56     Вывод char из функции #7
Цитата Сообщение от Fene4ka_ Посмотреть сообщение
ругается компилятор
для начала убрать const из функции
C++
1
2
3
4
char * words::GetCount()
{
   return count;
}
во вторых покажи наконец что такое count?
и как вообще реализован класс words?
Fene4ka_
84 / 84 / 16
Регистрация: 24.01.2014
Сообщений: 1,142
24.01.2014, 20:25  [ТС]     Вывод char из функции #8
действительно без const заработало, плюсик

Добавлено через 27 минут
может еще подскажите почему не работает ?
C++
1
2
3
4
5
6
7
8
9
void words::list_words()
{
    char* buf = strtok(count, " ");
    while (buf)
    {
        cout << "buf" << endl;
        strtok(NULL , " ");
    }
}
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4920 / 2663 / 243
Регистрация: 29.11.2010
Сообщений: 7,416
24.01.2014, 20:47     Вывод char из функции #9
Я попал на битву экстрасенсов!
Где весь код?

Добавлено через 2 минуты
Цитата Сообщение от ValeryS Посмотреть сообщение
для начала убрать const из функции
предложу наоборот, добавить const!
C++
1
const char* getStr() const
что концептуально правильнее для get-метода
Fene4ka_
84 / 84 / 16
Регистрация: 24.01.2014
Сообщений: 1,142
24.01.2014, 20:57  [ТС]     Вывод char из функции #10
main
C++
1
2
3
4
5
6
7
8
int _tmain(int argc, _TCHAR* argv[])
{
    words Object;
    Object.SetCount();
    cout << Object.GetCount() << endl;
    Object.list_words();
    return 0;
}
заголовок
C++
1
2
3
4
5
6
7
8
9
10
11
class words
{
public:
    words();
    ~words();
    char* GetCount();
    void SetCount();
    void list_words();
private:
    char count[256];
};
исполняемый
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
char* words::GetCount()
{
    return count;
}
 
void words::SetCount()
{
    cin.getline(count, 256);
}
 
void words::list_words()
{
    char* buf = strtok(count, " ");
    while (buf)
    {
        cout << "buf" << endl;
        strtok(NULL , " ");
    }
}
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4920 / 2663 / 243
Регистрация: 29.11.2010
Сообщений: 7,416
24.01.2014, 21:00     Вывод char из функции #11
C++
1
buf = strtok(NULL , " ");
нет реализации конструктора и деструктора
Fene4ka_
84 / 84 / 16
Регистрация: 24.01.2014
Сообщений: 1,142
24.01.2014, 21:02  [ТС]     Вывод char из функции #12
Цитата Сообщение от MrGluck Посмотреть сообщение
C++
1
buf = strtok(NULL , " ");
нет реализации конструктора и деструктора
C++
1
2
3
4
5
6
7
8
9
10
11
12
words::words()
{
    cout << "program successfully launched" << endl
         << "-----------------------------" << endl;
}
 
words::~words()
{
    cout << "-----------------------------" << endl
         << "program has been successfully completed" << endl;
    system("pause");
}
или какие-то другие конструкторы и деструкторы реализовать нада ?
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4920 / 2663 / 243
Регистрация: 29.11.2010
Сообщений: 7,416
24.01.2014, 21:13     Вывод char из функции #13
Fene4ka_, если придет сантехник починить раковину, вы открутите кран, дадите ему и упорно будете скрывать весь остальной механизм?
Почему из вас все надо вытягивать? Как можно помочь в том, чего не видишь? Да хотя вы и проблему толком не озвучили. Мб у вас "Почему не работает" == "компилируется, но работает не так как хочу", а мы понимаем под этим совершенно другое. Да и в вашем случае тогда встает резонный вопрос. Как вы хотите? Только не говорите "чтобы заработало".

Тут все за вас приходится дописывать, угадывать, додумывать. А ведь при правильно составленном вопросе ответ получили бы сразу и не устраивали бы тут шоу (как то, что на ТНТ идет).

Добавлено через 22 секунды
Цитата Сообщение от Fene4ka_ Посмотреть сообщение
или какие-то другие конструкторы и деструкторы реализовать нада ?
какие-то другие не надо, достаточно было показать эти.
Fene4ka_
84 / 84 / 16
Регистрация: 24.01.2014
Сообщений: 1,142
24.01.2014, 21:16  [ТС]     Вывод char из функции #14
сейчас не компилируется
Error 1 error C4996: 'strtok': This function or variable may be unsafe. Consider using strtok_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

перестало работать после добавления
C++
1
2
3
4
5
6
7
8
9
void words::list_words()
{
    char* buf = strtok(count, " ");
    while (buf)
    {
        cout << "buf" << endl;
        strtok(NULL , " ");
    }
}
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4920 / 2663 / 243
Регистрация: 29.11.2010
Сообщений: 7,416
24.01.2014, 21:21     Вывод char из функции #15
C++
1
#define _CRT_SECURE_NO_WARNINGS
А вообще, это проблемы несовместимости последней VS со стандартом.
Раньше был warning, а теперь даже не дает скомпилировать корректный с точки зрения стандарта код, предлагая заменить нормальную функцию на проприетарную.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
24.01.2014, 21:25     Вывод char из функции #16
Цитата Сообщение от MrGluck Посмотреть сообщение
А вообще, это проблемы несовместимости последней VS со стандартом.
Раньше был warning, а теперь даже не дает скомпилировать корректный с точки зрения стандарта код, предлагая заменить нормальную функцию на проприетарную.
Здесь описано, как можно отключить: Ошибка в SCANF
Fene4ka_
84 / 84 / 16
Регистрация: 24.01.2014
Сообщений: 1,142
24.01.2014, 21:25  [ТС]     Вывод char из функции #17
Цитата Сообщение от MrGluck Посмотреть сообщение
C++
1
#define _CRT_SECURE_NO_WARNINGS
А вообще, это проблемы несовместимости последней VS со стандартом.
Раньше был warning, а теперь даже не дает скомпилировать корректный с точки зрения стандарта код, предлагая заменить нормальную функцию на проприетарную.
и как это сделать ? максимально подробно плз
KOPOJI
Модератор
 Аватар для KOPOJI
16242 / 6453 / 390
Регистрация: 12.06.2012
Сообщений: 19,339
24.01.2014, 21:30     Вывод char из функции #18
Fene4ka_, либо так, как по ссылке выше в посте #16, либо прописав в начале код из поста #15, который вы сцитировали, либо заменив strtok и т.д. на "безопасные" strtok_s и т.д...
Fene4ka_
84 / 84 / 16
Регистрация: 24.01.2014
Сообщений: 1,142
24.01.2014, 21:44  [ТС]     Вывод char из функции #19
сделал как в посте #16, но теперь проблема в том, что постоянно выводится первое слово, без остановки
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.01.2014, 22:03     Вывод char из функции
Еще ссылки по теме:

Вывод массива char C++
C++ Инициализация структур и не вывод строчки char*
C++ Char вывод

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

Или воспользуйтесь поиском по форуму:
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4920 / 2663 / 243
Регистрация: 29.11.2010
Сообщений: 7,416
24.01.2014, 22:03     Вывод char из функции #20
Fene4ka_,
Цитата Сообщение от MrGluck Посмотреть сообщение
C++
1
buf = strtok(NULL , " ");
Yandex
Объявления
24.01.2014, 22:03     Вывод char из функции
Ответ Создать тему
Опции темы

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