Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.78/18: Рейтинг темы: голосов - 18, средняя оценка - 4.78
102 / 102 / 40
Регистрация: 24.01.2014
Сообщений: 1,242

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

24.01.2014, 19:36. Показов 3679. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
выводит первую букву слово, подскажите ошибку ...

исполняемый файл
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);
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.01.2014, 19:36
Ответы с готовыми решениями:

Различное поведение функции которая копирует строки с char* t и char t[]
столкнулся с ситуацией которую не могу объяснить пишем функцию которая копирует одну строку в другую: void strstr(char* t,...

Реализация функции char *padl(const char *string, int len, int c=' ')
Реализовать функцию возвращающую указатель на новую строку длины len, полученную из string либо удалением лишних символов слева , либо...

Вывод в с++/CLI char как char
#include &quot;stdafx.h&quot; #include &lt;Windows.h&gt; #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;cliext/queue&gt; #include...

25
 Аватар для gromo
383 / 281 / 31
Регистрация: 04.09.2009
Сообщений: 1,225
24.01.2014, 19:44
Цитата Сообщение от Fene4ka_ Посмотреть сообщение
C++
1
2
3
4
char words::GetCount() const
{
return *count;
}
C++
1
2
3
4
char words::GetCount() const
{
     return count;
}
если мои телепатические способности не подвели
0
102 / 102 / 40
Регистрация: 24.01.2014
Сообщений: 1,242
24.01.2014, 19:46  [ТС]
также работать не будет
0
Модератор
Эксперт по электронике
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
24.01.2014, 19:49
Цитата Сообщение от 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;
}
0
 Аватар для gromo
383 / 281 / 31
Регистрация: 04.09.2009
Сообщений: 1,225
24.01.2014, 19:50
Цитата Сообщение от ValeryS Посмотреть сообщение
если count это строка
то нужно вернуть указатель на неё
а я и не заметил)
0
102 / 102 / 40
Регистрация: 24.01.2014
Сообщений: 1,242
24.01.2014, 19:51  [ТС]
Цитата Сообщение от 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 *'
0
Модератор
Эксперт по электронике
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
24.01.2014, 19:56
Цитата Сообщение от Fene4ka_ Посмотреть сообщение
ругается компилятор
для начала убрать const из функции
C++
1
2
3
4
char * words::GetCount()
{
   return count;
}
во вторых покажи наконец что такое count?
и как вообще реализован класс words?
1
102 / 102 / 40
Регистрация: 24.01.2014
Сообщений: 1,242
24.01.2014, 20:25  [ТС]
действительно без 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 , " ");
    }
}
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
24.01.2014, 20:47
Я попал на битву экстрасенсов!
Где весь код?

Добавлено через 2 минуты
Цитата Сообщение от ValeryS Посмотреть сообщение
для начала убрать const из функции
предложу наоборот, добавить const!
C++
1
const char* getStr() const
что концептуально правильнее для get-метода
0
102 / 102 / 40
Регистрация: 24.01.2014
Сообщений: 1,242
24.01.2014, 20:57  [ТС]
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 , " ");
    }
}
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
24.01.2014, 21:00
C++
1
buf = strtok(NULL , " ");
нет реализации конструктора и деструктора
0
102 / 102 / 40
Регистрация: 24.01.2014
Сообщений: 1,242
24.01.2014, 21:02  [ТС]
Цитата Сообщение от 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");
}
или какие-то другие конструкторы и деструкторы реализовать нада ?
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
24.01.2014, 21:13
Fene4ka_, если придет сантехник починить раковину, вы открутите кран, дадите ему и упорно будете скрывать весь остальной механизм?
Почему из вас все надо вытягивать? Как можно помочь в том, чего не видишь? Да хотя вы и проблему толком не озвучили. Мб у вас "Почему не работает" == "компилируется, но работает не так как хочу", а мы понимаем под этим совершенно другое. Да и в вашем случае тогда встает резонный вопрос. Как вы хотите? Только не говорите "чтобы заработало".

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

Добавлено через 22 секунды
Цитата Сообщение от Fene4ka_ Посмотреть сообщение
или какие-то другие конструкторы и деструкторы реализовать нада ?
какие-то другие не надо, достаточно было показать эти.
0
102 / 102 / 40
Регистрация: 24.01.2014
Сообщений: 1,242
24.01.2014, 21:16  [ТС]
сейчас не компилируется
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 , " ");
    }
}
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
24.01.2014, 21:21
C++
1
#define _CRT_SECURE_NO_WARNINGS
А вообще, это проблемы несовместимости последней VS со стандартом.
Раньше был warning, а теперь даже не дает скомпилировать корректный с точки зрения стандарта код, предлагая заменить нормальную функцию на проприетарную.
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
24.01.2014, 21:25
Цитата Сообщение от MrGluck Посмотреть сообщение
А вообще, это проблемы несовместимости последней VS со стандартом.
Раньше был warning, а теперь даже не дает скомпилировать корректный с точки зрения стандарта код, предлагая заменить нормальную функцию на проприетарную.
Здесь описано, как можно отключить: https://www.cyberforum.ru/post5488517.html
1
102 / 102 / 40
Регистрация: 24.01.2014
Сообщений: 1,242
24.01.2014, 21:25  [ТС]
Цитата Сообщение от MrGluck Посмотреть сообщение
C++
1
#define _CRT_SECURE_NO_WARNINGS
А вообще, это проблемы несовместимости последней VS со стандартом.
Раньше был warning, а теперь даже не дает скомпилировать корректный с точки зрения стандарта код, предлагая заменить нормальную функцию на проприетарную.
и как это сделать ? максимально подробно плз
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
24.01.2014, 21:30
Fene4ka_, либо так, как по ссылке выше в посте #16, либо прописав в начале код из поста #15, который вы сцитировали, либо заменив strtok и т.д. на "безопасные" strtok_s и т.д...
0
102 / 102 / 40
Регистрация: 24.01.2014
Сообщений: 1,242
24.01.2014, 21:44  [ТС]
сделал как в посте #16, но теперь проблема в том, что постоянно выводится первое слово, без остановки
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
24.01.2014, 22:03
Fene4ka_,
Цитата Сообщение от MrGluck Посмотреть сообщение
C++
1
buf = strtok(NULL , " ");
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.01.2014, 22:03
Помогаю со студенческими работами здесь

Проблема с char**. Все элементы char** после выполнения функции приобретают одно и то же значение
Суть такая: сначала найти в введенной строке подстроку &quot;\ &quot; (например, &quot;mkdir my\ dir&quot;), и зменить её, например, на %space%. Затем,...

Получить массив char и его размер из функции - Указатель не меняется вне функции
Помогите пожалуйста разобраться в чём проблема. Добавлено через 34 минуты Помогите пожалуйста разобраться в чём проблема. Нужно...

Объявить массив из N указателей на функции, возвращающих указатели на функции, возвращающие указатель на char
Задание: Объявить массив из N указателей на функции, возвращающих указатели на функции, возвращающие указатель на char. Можно...

Char вывод
Как вывести символы из массива символов char числа?

Некорректный вывод char
Подскажите пожалуйста, почему при выводе char у меня всегда выводит &quot;и&quot; не смотря на то, что я ввожу не её?? #include&lt;stdio.h&gt; ...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru