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 gelesen
    

    Stefan.



  • Danke!



  • DStefan schrieb:

    enum { buffSize = 256 };
    char buff[buffSize];
    infile.getline(buff, buffSize);
    if(buff[buffSize - 1])
       ;         // Zeile wurde nicht bis zum Ende gelesen
    

    Stefan.

    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 gelesen
    

    bb



  • unskilled schrieb:

    DStefan schrieb:

    enum { buffSize = 256 };
    char buff[buffSize];
    infile.getline(buff, buffSize);
    if(buff[buffSize - 1])
       ;         // Zeile wurde nicht bis zum Ende gelesen
    

    Stefan.

    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 gelesen
    

    bb

    Verflixt! Ich wusste doch, ich bin nicht perfekt 😉 😉

    Stefan.


Anmelden zum Antworten