我有一些C++代碼,當解析某個文件頭失敗時,需要生成一條錯誤消息。在這種情況下,我需要確保標題中的某個4字節字段爲「OggS」,如果不是,則返回錯誤消息,如「無效capture_pattern:'FooB';期待'OggS'」。我的代碼看起來像這樣:什麼是替代snprintf(3)的C++習慣用法?
const string OggPage::parseHeader(void) {
read(fd, capture_pattern, sizeof(capture_pattern)); // error handling omitted
if (strncmp(capture_pattern, CAPTURE_PATTERN, sizeof(capture_pattern)) != 0) {
char err[256];
snprintf(err, sizeof(err), "Failed to read %d bytes from file descriptor %d: %s\n", sizeof(capture_pattern), fd, err);
return err;
}
return "Everything was A-OK!";
}
從其他數據類型構建字符串的標準C++習慣用法是什麼?我並不喜歡這裏的printf(3)
風格的格式,所以請隨時提出任何有用的建議。
另外請注意:您在'sizeof(capture_pattern)'中忘了')'。 – Lstor 2011-05-01 09:05:05
只是一個筆記...自從你接受了一個涉及 –
2015-12-07 08:26:47
@tea的回答後,刪除這個'只是一個便條'注意事項只是一個註釋...我刪除了'只是一個便條'註釋以迴應你的'只是一個註釋'註釋。 ;-P – 2015-12-08 08:56:37