Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]1113[/thread]

Einlesen eines Strings (Seite 2)



<< |< 1 2 >| >> 14 Einträge, 2 Seiten
esskar
 2004-06-15 13:59
#11063 #11063
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
versuch mal

Code: (dl )
1
2
3
std::string test;
test.resize(512+1);
cin.getline(reinterpret_cast<char*>(test.c_str()), test.size()-1);
renee
 2004-06-15 14:14
#11064 #11064
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Quote
reinterpret_cast from `const char*' to `char*' casts away const
(or volatile)


Kann ich denn wenn ich in ein char[] eingelesen habe, das irgendwie in einen string casten?? sowas wie
Code: (dl )
1
2
3
4
char test[512 + 1] = {0};
string test2;
cin.getline(test,sizeof(test)-1);
test2 = test;
??
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
esskar
 2004-06-15 14:40
#11065 #11065
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
[quote=renee,15.06.2004, 12:14]
Code: (dl )
1
2
3
4
char test[512 + 1] = {0};
string test2;
cin.getline(test,sizeof(test)-1);
test2 = test;
??[/quote]
das geht... feiner ist es natürlich

Code: (dl )
1
2
3
4
char szTest[512+1] = {0};
cin.getline(szTest, sizeof(szTest)-1);

std::string strTest = std::string(szTest);
esskar
 2004-06-15 14:57
#11066 #11066
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
ich würde es aber anders machen

Code: (dl )
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
template<class T>
std::string getline(T & in)
{
  std::string retval = "";
  bool run = true;
 
  while(run)
  {
      char buffer[2048+1] = {0};
 
      in.get(buffer, sizeof(buffer)-1, '\n');
if(in.eof()) break;

      size_t len = strlen(buffer);
      if(len == 0) break;
      if(buffer[len-1] == '\n')
      {
         buffer[len-1] = 0;
         run = false;
      }

      retval += buffer;
  }

  return retval;
}

std::string test = getline<std::istream>(cin);
\n\n

<!--EDIT|esskar|1087297121-->
<< |< 1 2 >| >> 14 Einträge, 2 Seiten



View all threads created 2004-06-14 15:55.