Здравствуйте, falcon8, Вы писали:
F>красиво а по быстродействию быстрее чем strncpy
Нет, это медленнее — хотя бы потому, что string использует динамическую память.
Но это надёжнее, очевиднее и более гибко.
А так — пожалуйста, можно написать функции
по мотивам strncpy.
// условие: countof(dst) >= count+1
// результат: dst оканчивается нулём
void strncpy_z(char* dst, const char* src, size_t count)
{
for( ; count && *src; ++src, ++dst, --count )
*dst = *src;
*dst = 0;
}
// условие: countof(dst) >= count; src оканчивается нулём
// результат: хвост dst забит указанными символами
void strncpy_c(char* dst, const char* src, size_t count, char pad)
{
for( ; count && *src; ++src, ++dst, --count )
*dst = *src;
for( ; count; ++dst, --count )
*dst = pad;
}
F>и как применить всё это
Так вы что, и конфеты за меня есть будете? — Ага!
ifstream file("1.txt", ios::in|ios::binary);
FileRecord fr; file.read(&fr, sizeof(fr));
cout << Record(fr) << endl;
... << RSDN@Home 1.2.0 alpha rev. 655>>