Форматирано пишете във файла в WINAPI - c ++, c, visual-studio-2010, winapi, io

с WriteFile команда, аз се опитвам да пиша в досието в дизайна, който желая. Проблемът е, че трябва да пиша в файл, използвайки низ или буфер.

Трябва да отпечатам във формата:

a1   a2   a3   a4   a5
b1   b2   b3   b4   b5
.
.
.

и това са двойни типове. Основният проблем, който имам, е свързването на низове и числа. Ако това е възможно, бих могъл просто да направя, (ако кажем, че + е операторът, бихме могли :)

a1^"   "^a2^"   "^   "^a4"n".

и цикъл, но аз нямам тази опция.

Оценявам всяка помощ.

Отговори:

1 за отговор № 1

Една от възможностите е да се използва std::ostringstream (или std::wostringstream за широки символи), за да форматирате данните в низ и след това да ги запишете във файла.

std::ostringstream strm;
double a = 1.1;
double b = 2.2;
strm << "hello " << a << " world " << b;

DWORD written;
WriteFile(handle, strm.str().c_str(), strm.str().size(), &written, NULL);

2 за отговор № 2

Предварително форматирайте данните в буфер. Ако наистина можете да използвате само WinAPI, можете да го направите с wsprintf, След това, когато имате буфер, пълен с данни, форматирани правилно, напишете всичко на диск едновременно с WriteFile, Само по себе си обаче, WriteFile няма никакви възможности за форматиране или конвертиране изобщо.


Свързани въпроси
Най - известен