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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.72
alsav22
5421 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
#1

wcout, wfstream в Code Blocks - C++

20.07.2012, 21:29. Просмотров 2313. Ответов 37
Метки нет (Все метки)

Не пойму, почему компилятор не определяет wcout, wfstream. #include <iostream>, #include <fstream>, using namespace std; сделаны. В std, подсказкой, он мне их показывет. Но после попытки компиляции пишет, или, что они не объявлены, или (если я так пишу: std::wcout), что в std нет таких.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.07.2012, 21:29
Здравствуйте! Я подобрал для вас темы с ответами на вопрос wcout, wfstream в Code Blocks (C++):

MS VS in CODE BLOCKS - C++
Делал проекты в VISUAL C++ EXPRESS. Сеичас пересел на LINUX, пользуюсь CODE BLOCKS . Есть какие-нибудь варианты как открыть проекты...

Code::blocks и VS - C++
всем привет, у меня такой вопрос: какой в Code::blocks аналог для #include stdafx.h? Нужно запустить, операции использую для этой...

Code::Blocks - C++
В Code::Blocks когда ты откомпилил программу в Debug, после внес изменения и снова &quot;откомпилил&quot;, то нет результата от 2-й компиляции -...

code::blocks 10.05 - C++
Я установил себе C++ code::blocks. И когда я компилирую любую программу и потом запускаю .exe выдаёт ошибку не находит libstdc++-6.dll. Я...

Code::Blocks - C++
Здравствуйте. Я в английском не силён, и разобраться самостоятельно с этой IDE не могу. У меня есть несколько вкладок с открытыми *.cpp...

Code::blocks - C++
Помогите как включить #include &lt;graphics.h&gt; #include &lt;windows.h&gt; в Code::block - се ,

37
alsav22
5421 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
21.07.2012, 03:04  [ТС] #16
Написал, что подменил, а подменить не удаётся. Если вместо того mingv, что идёт в комплекте, помещаю скачанный по ссылке и прописываю в Toolchain executables путь к нему, то:
0
Миниатюры
wcout, wfstream в Code Blocks  
alsav22
5421 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
21.07.2012, 03:13  [ТС] #17
Цитата Сообщение от xADMIRALx Посмотреть сообщение
Можна посмотреть на весь код ?
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <iostream>
#include <fstream>
#include <Windows.h>
using namespace std;
 
 
int main()
{
    //setlocale(0, "");
    //SetConsoleCP (1251);
    //SetConsoleOutputCP (1251);
 
    char *s[4] = {"upload.txt", "uploadANSI.txt", "uploadUNICOD.txt", "uploadUNICOD BIg.txt"};
    wchar_t *sw[4] = {L"upload.txt", L"uploadANSI.txt", L"uploadUNICOD.txt", L"uploadUNICOD BIg.txt"};
    char buff[500];
    wchar_t wbuff[500];
 
 
    for (int i = 0; i < 4; i++)
    {
        ifstream f(s[i]);
        if (!f.is_open()) cout << "Error!" << endl;
        f.getline(buff, 500);
        cout << s[i] << endl;
        cout << buff << endl;
        f.close();
    }
 
    for (int i = 0; i < 4; i++)
    {
        wfstream fw(sw[i]);
        if(!(fw.is_open()))cout << "Error!" << endl;
        fw.getline(wbuff, 500);
        wcout << sw[i] << L'\n';
        wcout << wbuff << L'\n';
        fw.close();
    }
 
    system("pause");
    return 0;
}
В студии без ошибок компилируется.
0
soon
2541 / 1306 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
21.07.2012, 07:23 #18
alsav22, есть только 5 конструторов basic_ifstream:
C++
1
2
3
4
5
basic_ifsteram();
explicit basic_ifstream(const char* s, ios_base::openmode mode = ios_base::in);
ecplicit basic_ifstream(const string& s, ios_base::openmode mode = ios_base::in);
basic_istream(const basic_ifstream&) = delete;
basic_ifstream(basic_ifstream&& rhs);
Где MSVC нашел еще один - непонятно. Опять, наверное, он свои преобразования делает без предупреждения пользователей.
0
alsav22
5421 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
21.07.2012, 07:51  [ТС] #19
Цитата Сообщение от soon Посмотреть сообщение
alsav22, есть только 5 конструторов basic_ifstream:
C++
1
2
3
4
5
basic_ifsteram();
explicit basic_ifstream(const char* s, ios_base::openmode mode = ios_base::in);
ecplicit basic_ifstream(const string& s, ios_base::openmode mode = ios_base::in);
basic_istream(const basic_ifstream&) = delete;
basic_ifstream(basic_ifstream&& rhs);
Где MSVC нашел еще один - непонятно. Опять, наверное, он свои преобразования делает без предупреждения пользователей.
Что тогда мне Code Blocks показывает?
0
Миниатюры
wcout, wfstream в Code Blocks  
alsav22
5421 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
21.07.2012, 08:03  [ТС] #20
А это MSVC.
0
Миниатюры
wcout, wfstream в Code Blocks  
alsav22
5421 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
21.07.2012, 08:44  [ТС] #21
Или я не понял, о чем вы? Об этом: ifstream f(s[i]); ? Или об этом: wfstream fw(sw[i]);
Этот разве не подходит: explicit basic_ifstream(const char* s, ios_base::openmode mode = ios_base::in); ?
0
xADMIRALx
67 / 61 / 1
Регистрация: 09.06.2012
Сообщений: 291
21.07.2012, 11:42 #22
Цитата Сообщение от alsav22 Посмотреть сообщение
Написал, что подменил, а подменить не удаётся. Если вместо того mingv, что идёт в комплекте, помещаю скачанный по ссылке и прописываю в Toolchain executables путь к нему, то:
Нажмите нет,зайдите в *Code Blocks -> Settings -> Compiler and debugger settings -> Toolchain executables затем жмите на 3 точки [button...] И указываете на скачанный mingw

затем идем в Additional Patch указываем папку bin в mingw то есть mingw -> bin
в Search directorions -> Resource compiler ставим папку include то есть mingw -> include
затем Linker -> Search derictorions указываем папку lib это у нас mingw -> lib

Должно помочь
1
soon
2541 / 1306 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
21.07.2012, 16:29 #23
Или об этом: wfstream fw(sw[i]);
Этот разве не подходит: explicit basic_ifstream(const char* s, ios_base::openmode mode = ios_base::in);
Нет. const wchar_t* и const char* разные типы
0
alsav22
5421 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
21.07.2012, 16:59  [ТС] #24
Цитата Сообщение от soon Посмотреть сообщение
Нет. const wchar_t* и const char* разные типы
Это тогда как понимать? В MSVC:
C++
1
2
typedef basic_ifstream<char, char_traits<char> > ifstream;
typedef basic_fstream<wchar_t, char_traits<wchar_t> > wfstream;
В Code Blocks:
C++
1
2
typedef basic_ifstream<char> ifstream;
typedef basic_ifstream<wchar_t>  wifstream;
И, вообще, класс шаблонный?
0
soon
2541 / 1306 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
21.07.2012, 17:05 #25
alsav22, и в чем разница?
0
alsav22
5421 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
21.07.2012, 17:21  [ТС] #26
Цитата Сообщение от soon Посмотреть сообщение
alsav22, и в чем разница?
Раз так пишут: typedef basic_ifstream<wchar_t> wifstream; (и пишет не MSVC), значит есть конструктор. Или я не прав? Если есть шаблонный класс, то что мешает вместо char поставить wchar_t ?
0
soon
2541 / 1306 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
21.07.2012, 17:30 #27
Цитата Сообщение от alsav22 Посмотреть сообщение
Раз так пишут: typedef basic_ifstream<wchar_t> wifstream; (и пишет не MSVC), значит есть конструктор. Или я не прав?
Еще раз. Станадртом определено всего 5 конструторов. И среди них нет конструтора, принимающего wchar_t или wstring.
0
modwind
52 / 52 / 1
Регистрация: 09.03.2012
Сообщений: 101
21.07.2012, 17:51 #28
что мешает вместо char поставить wchar_t
Visual Studio позволяет указывать имя файла в виде wchar_t*, но по стандарту должно поддерживаться только char*, даже если сам поток юникодовый. Имена файлов в "широких" символах UTF-16 непереносимы на другие платформы.
1
alsav22
5421 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
21.07.2012, 18:05  [ТС] #29
Хорошо, давайте отвлечёмся. Почему Code Blocks выдаёт вот такое и как это понимать:
D:\Code B\q\main.cpp||In function 'int main()':|
D:\Code B\q\main.cpp|33|error: no matching function for call to 'std::basic_fstream<wchar_t, std::char_traits<wchar_t> >::basic_fstream(wchar_t*&)'|
d:\program files (x86)\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\fstream|795|note: candidates are: std::basic_fstream<_CharT, _Traits>::basic_fstream(const char*, std::_Ios_Openmode) [with _CharT = wchar_t, _Traits = std::char_traits<wchar_t>]|
d:\program files (x86)\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\fstream|782|note: std::basic_fstream<_CharT, _Traits>::basic_fstream() [with _CharT = wchar_t, _Traits = std::char_traits<wchar_t>]|
d:\program files (x86)\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\iosfwd|87|note: std::basic_fstream<wchar_t, std::char_traits<wchar_t> >::basic_fstream(const std::basic_fstream<wchar_t, std::char_traits<wchar_t> >&)|
||=== Build finished: 1 errors, 8 warnings ===|
Добавлено через 2 минуты
xADMIRALx, сейчас буду пробовать.
0
modwind
52 / 52 / 1
Регистрация: 09.03.2012
Сообщений: 101
21.07.2012, 18:06 #30
Потому, что не откроет он wchar_t файл, хоть ты тресни )
C++
1
wfstream fw(s[i]);
Так будет работать.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.07.2012, 18:06
Привет! Вот еще темы с ответами:

кириллица в Code::Blocks - C++
Здравствуйте! Посоветуйте пожалуйста, как установить кириллицу в Code::Blocks в среде windows XP Изучаю книгу &quot;С++ для чайников&quot;...

Code Blocks ошибка - C++
/usr/include/c++/4.7/type_traits|1857| required from ‘class std::result_of&lt;std::_Mem_fn&lt;void (TftpServer::*)()&gt;(TftpServer)&gt;’| что...

Не запускается в code blocks 8.0 - C++
Всем привет, нашел прогу которая видимо рабочая, но не могу проверить так как в code blocks она не компилится. Вот само задание По...

Libcurl code blocks - C++
Уже вторые сутки пытаюсь установить библиотеку curl, но перерыв кучу материала в интернете так и не смог найти толкового гайда по...


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

Или воспользуйтесь поиском по форуму:
30
Yandex
Объявления
21.07.2012, 18:06
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru