std::cin.getline(inputBuffer, MAXLINE); const std::string encoding(inputBuffer);
size_t currentOffset(encoding.size()+1); while (true)
{ // Extract the next word, but not the entry count
std::cin.getline(inputBuffer, MAXLINE, '|');
if (std::cin.eof()) break;
std::string word(inputBuffer);
ret = entries.insert(ret, std::pair<std::string, size_t>(word, currentOffset));
currentOffset += word.size() + 1; // Next is the entry count
std::cin.getline(inputBuffer, MAXLINE); if (!std::cin.good())
{
std::cerr << "Unable to read entry - insufficient buffer?.\n"; exit(99);
}
currentOffset += strlen(inputBuffer)+1; char * endptr;
errno = 0; int entryCount(strtol(inputBuffer, &endptr, 10)); if (errno != 0 || endptr == inputBuffer || *endptr != '\0')
{
std::cerr
<< "Unable to read count from \"" << inputBuffer
<< "\" input.\n"; exit(99);
} for (int i(0); i < entryCount; ++i)
{
std::cin.getline(inputBuffer, MAXLINE);
currentOffset += strlen(inputBuffer)+1;
}
}
// Use binary mode to prevent any translation of LF to CRLF on Windows
std::ofstream outputStream(outputFile, std::ios_base::binary| std::ios_base::trunc|std::ios_base::out); if (!outputStream.is_open())
{
std::cerr << "Unable to open output file " << outputFile << std::endl;
::exit(99);
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.