Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
 Аватар для Rhoxolan
13 / 13 / 7
Регистрация: 16.12.2020
Сообщений: 247

Проблема с разбиением проекта и wstring*

07.11.2021, 02:18. Показов 1707. Ответов 7

Студворк — интернет-сервис помощи студентам
Здравствуйте. Не могу понять, почему не могу разбить проект на несколько файлов, если используется функция с наличием wstring*. Одним файлом все прекрасно работает. Помогите, пожалуйста, разобраться.

C++
1
2
3
4
5
6
7
8
9
10
11
12
//Source.cpp
 
#include<iostream>
#include"Header.h"
using namespace std;
 
void main()
{
    wstring* wstr = new wstring[1];
    wstr[0] = L"wstring";
    funk1(wstr);
}
C++
1
2
3
4
5
//Header.h
 
#pragma once
 
void funk1(wstring* wstr);
C++
1
2
3
4
5
6
7
8
9
10
//Header.cpp
 
#include"Header.h"
#include<iostream>
using namespace std;
 
void funk1(wstring* wstr)
{
    wcout << wstr[0];
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.11.2021, 02:18
Ответы с готовыми решениями:

Конвертация wstring в TCHAR* ( или wstring в FString(ue4)
Есть записанный русский текст в переменную типа std::wstring, нужно перевести эту строку в FString(для дальнейшего использования в ue4) или...

Проблема преобразования символов типа wstring в string
Есть следующий код который преобразовывает wstring in string, но при попадании символов выводит кракозяблики: const wchar_t* s =...

Объясните, что означает wstring input = L""; и wstring output = L""; ?
Непонятно особенно L&quot;&quot;.

7
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
07.11.2021, 02:44
Лучший ответ Сообщение было отмечено Rhoxolan как решение

Решение

Rhoxolan, #include <string> в Header.h и std:: указать.
1
Модератор
Эксперт С++
 Аватар для zss
13774 / 10967 / 6491
Регистрация: 18.12.2011
Сообщений: 29,248
07.11.2021, 09:24
Лучший ответ Сообщение было отмечено Rhoxolan как решение

Решение

Цитата Сообщение от Rhoxolan Посмотреть сообщение
#include"Header.h"
#include<iostream>
C++
1
2
3
4
#include <iostream>
#include <string>
// и только после этого:
#include "Header.h"
1
фрилансер
 Аватар для Алексей1153
6466 / 5688 / 1131
Регистрация: 11.10.2019
Сообщений: 15,146
07.11.2021, 09:28
zss, заголовки не должны зависеть от порядка их включения (по крайней мере, нужно стараться этого достигать). Поэтому лучше заинклудить <string> в "Header.h"
1
 Аватар для Rhoxolan
13 / 13 / 7
Регистрация: 16.12.2020
Сообщений: 247
08.11.2021, 00:41  [ТС]
DrOffset и zss, спасибо, оба совета помогли разобраться в ситуации. И хочу отметить, что в данном случае #include<string> не потребовался, проблему решило "std::" и #include<iostream> в заголовочном файле.

Рабочая версия:
C++
1
2
3
4
5
6
7
8
9
10
11
12
//Source.cpp
 
#include"Header.h"
#include<iostream>
using namespace std;
 
void main()
{
    wstring* wstr = new wstring[1];
    wstr[0] = L"wstring";
    funk1(wstr);
}
C++
1
2
3
4
5
6
//Header.h
 
#pragma once
#include<iostream>
 
void funk1(std::wstring* wstr);
C++
1
2
3
4
5
6
7
8
9
10
//Header.cpp
 
#include"Header.h"
#include<iostream>
using namespace std;
 
void funk1(wstring* wstr)
{
    wcout << wstr[0];
}
И да, zss, - был весьма удивлен, проснувшись, увидеть, что я отметил ваш ответ как решение. Учитывая, что я этого не делал и особенно учитывая, что ваш ответ не был полным решением проблемы.
0
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
08.11.2021, 00:47
Лучший ответ Сообщение было отмечено Rhoxolan как решение

Решение

Rhoxolan, явный #include <string> все-таки нужен, т.к. нет гарантий, что <iostream> всегда будет его включать. Именно это негарантированное поведение вы сейчас эксплуатируете в своем коде.
1
 Аватар для Rhoxolan
13 / 13 / 7
Регистрация: 16.12.2020
Сообщений: 247
08.11.2021, 00:54  [ТС]
Цитата Сообщение от DrOffset Посмотреть сообщение
Rhoxolan, явный #include <string> все-таки нужен, т.к. нет гарантий, что <iostream> всегда будет его включать. Именно это негарантированное поведение вы сейчас эксплуатируете в своем коде.
Не могу не согласиться. Спасибо за совет.
0
Модератор
Эксперт С++
 Аватар для zss
13774 / 10967 / 6491
Регистрация: 18.12.2011
Сообщений: 29,248
08.11.2021, 07:09
Rhoxolan, попробуйте без #include <string>
C++
1
2
    std::wstring wstr;
    std::getline(std::wcin,wstr);
И поймете, что iostream что-то из string подключает для своей надобности,
но не всё.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.11.2021, 07:09
Помогаю со студенческими работами здесь

Проблема компиляции 2D проекта
Здравствуйте, создал игру на андроид, начинаю компилировать и выдает ошибку. В скриптах ошибок нет, вот скриншоты ошибок которые мне выдал...

Проблема в открытии проекта
Во время работы в Visual Studio 2017 в классах проекта не сохранил изменения и завис компьютер, после чего его пришлось перезагружать....

Проблема с компиляцией проекта
Возникла такая ошибка с файлом System.data.dll, который располагается в папке plugins. Помогите ее устранить

Проблема сборки проекта в QT
При сборке проекта возникает следующая ошибка: Выполняется сборка проекта first... Настройки не изменились, этап qmake пропускается. ...

проблема с созданием проекта win32
Помогите пожалуйста: при создании проекта win32 console application, я ввожу имя проекта, далее окно появляется:&quot;Welcome ....&quot;...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru