getline - Anzahl der einzulesenden Zeichen begrenzen.
-
Hi!
ich lese ne Textdatei zeilenweise in einen String ein:getline ( infile, line );Wie kann ich die Anzahl der Zeichen, die eingelesen werden, auf einen Maximalwert setzen?
-
enum { buffSize = 256 }; char buff[buffSize]; infile.getline(buff, buffSize); if(buff[buffSize - 1]) ; // Zeile wurde nicht bis zum Ende gelesenStefan.
-
Danke!
-
DStefan schrieb:
enum { buffSize = 256 }; char buff[buffSize]; infile.getline(buff, buffSize); if(buff[buffSize - 1]) ; // Zeile wurde nicht bis zum Ende gelesenStefan.
funktioniert so mit sicherheit nicht...
wnen weniger als 254 zeichen gelesen werden, dann ist es imho undefiniert, was in buff[255] steht...http://www.cplusplus.com/reference/iostream/istream/getline/ schrieb:
The number of characters read by this function can be obtained by calling to the member function gcount.
also
const size_t buffSize = 256; char buff[buffSize]; infile.getline(buff, buffSize); if(infile.gcount() == buffSize) ; // Zeile wurde nicht bis zum Ende gelesenbb
-
unskilled schrieb:
DStefan schrieb:
enum { buffSize = 256 }; char buff[buffSize]; infile.getline(buff, buffSize); if(buff[buffSize - 1]) ; // Zeile wurde nicht bis zum Ende gelesenStefan.
funktioniert so mit sicherheit nicht...
wnen weniger als 254 zeichen gelesen werden, dann ist es imho undefiniert, was in buff[255] steht...http://www.cplusplus.com/reference/iostream/istream/getline/ schrieb:
The number of characters read by this function can be obtained by calling to the member function gcount.
also
const size_t buffSize = 256; char buff[buffSize]; infile.getline(buff, buffSize); if(infile.gcount() == buffSize) ; // Zeile wurde nicht bis zum Ende gelesenbb
Verflixt! Ich wusste doch, ich bin nicht perfekt

Stefan.