LINUX.ORG.RU

istringstream не пашет


0

0

Я уже зеленею он злости.
Помогите, пожалуйста!


#include <iostream>
#include <sstream>
#include <string>
using namespace std;
int main(int argc, char *argv[])
{
string s = "this is a sample useless string";
string word;
(istringstream)(istringstream (s.substr(0,2))) >>word;
return 0;
}
$ gcc --version
gcc (GCC) 3.3.2 (Mandrake Linux 10.0 3.3.2-6mdk)
Copyright (C) 2003 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$ gcc -c zz.cpp
/usr/include/c++/3.3.2/bits/ios_base.h: In copy constructor `std::basic_ios<char, std::char_traits<char> >::basic_ios(const std::basic_ios<char, std::char_traits<char> >&)':
/usr/include/c++/3.3.2/bits/ios_base.h:668: error: `std::ios_base::ios_base(const std::ios_base&)' is private
zz.cpp:9: error: within this context
/usr/include/c++/3.3.2/streambuf: In copy constructor `std::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::basic_stringbuf(const std::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >&)':
/usr/include/c++/3.3.2/streambuf:922: error: `std::basic_streambuf<_CharT, _Traits>::basic_streambuf(const std::basic_streambuf<_CharT, _Traits>&) [with _CharT = char, _Traits = std::char_traits<char>]' is private
zz.cpp:9: error: within this context
zz.cpp: In function `int main(int, char**)':
zz.cpp:9: error: no match for 'operator>>' in 'istringstream((&std::basic_string<_CharT, _Traits, _Alloc>::substr(typename _Alloc::size_type, typename _Alloc::size_type) const [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>](0, 2)), (std::_Ios_Openmode)8) >> word'
/usr/include/c++/3.3.2/bits

★★
Ответ на: комментарий от Deleted

2orlik: Ты хотя бы запустить попровал бы...
2phrm: Непонятно, что тебе нужно... И вообще, зачем, собсна, пытаться
сделать еще одно приведение к istringstream? И почему бы не обойдись
таким кодом:

#include <iostream>
#include <sstream>
#include <string>
using namespace std;
int main(int argc, char *argv[])
{
  string s = "this is a sample useless string";
  string word;
  word = s.substr(0,2);
  return 0;
}

?

anonymous
()
Ответ на: комментарий от anonymous

Ну, в принципе это урезанный код, и такие структуры как

мне нужны в большом количестве. А на вопрос зачем мне istringstream нужен, и почему не пользуюсь s.substr() - а зачем вообсче istringstream нужен, можно вообсще пользоваться char *.

phrm ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.