file - C++ return string keeps getting junk -
why return string here have sorts of junk on it?
string getchunk(ifstream &in){ char buffer[5]; for(int x = 0; x < 5; x++){     buffer[x] = in.get();     cout << x << " " << buffer[x] << endl; } cout << buffer << endl; return buffer; }  ifstream openfile; openfile.open ("bacon.txt"); chunk = getchunk(openfile); cout << chunk;   i load of junk in string has junk on end of it, though debug says buffer being filled correct characters.
thanks, c++ lot harder java.
you need null terminate buffer. make buffer size 6 characters , 0 initialize it. fill first 5 locations you're doing now, leave last 1 alone.
char buffer[6] = {0};  // <-- 0 initializes array for(int x = 0; x < 5; x++){     buffer[x] = in.get();     cout << x << " " << buffer[x] << endl; } cout << buffer << endl; return buffer;   alternately, leave array size same, use string constructor takes char * , number of characters read source string. 
char buffer[5]; for(int x = 0; x < 5; x++){     buffer[x] = in.get();     cout << x << " " << buffer[x] << endl; } cout << buffer << endl; // still print out junk in case return string( buffer, 5 );      
Comments
Post a Comment