Портится кодировка при выводе массива в файл

delias

Подскажите, нужно массив вывести в файл, но только так чтобы можно было его потом прочитать человеку. Строка сохраняется в файле без проблем, всё читабельно:
char a1[40]="1234567";                 
hFile = CreateFile ("test.txt", GENERIC_WRITE, 0,  
    NULL, CREATE_ALWAYS, 0, NULL); 
WriteFile (hFile, a1, sizeof(a1), &dwSort, FILE_BEGIN);     
CloseHandle (hFile);
А вот если пытаюсь числовой массив преобразовывать в текст и записывать в файл, то в итоге файл нечитабелен, вместо символов квадратики. Делаю так:
char a1[40]; 
strcpy(a1,""); 
for (int i=0;i<10;i++) 
{ 
    char buf[2]; 
    itoa (a[i],buf,10); 
    strcat(a1,buf);     
}                 
hFile = CreateFile ("test.txt", GENERIC_WRITE, 0,  
    NULL, CREATE_ALWAYS, 0, NULL); 
WriteFile (hFile, a1, sizeof(a1), &dwSort, FILE_BEGIN);     
CloseHandle (hFile);
Посоветуйте, как решить возникшую проблему?
3 ответа

delias

delias, я бы начал с замены функций itoa и strcat на симпатичный вариант sprintf. Если размер массива известен заранее - забиваем сразу нужное число %d. Если нет - примерно так:
char * buff_pointer = al;
 
for(int i =0 ; i < n;i++)  
      buff_pointer += sprintf(buff_pointer,"%d ",a[i]);


delias

неа, не помогает.
int a[10]={1,2,3,4,5,6,7,8,9};
                char a1[40];
                strcpy(a1,"");
 
                char temp[10];
                for (int i = 0; i < 10; i++ )
                {
                    sprintf( temp, "%d", a[ i ] );
                    strcat( a1, temp );
                    strcat( a1, " " );
                }
                
                MessageBox(wnd,a1,"Сообщение",MB_OK);
                
                hFile = CreateFile ("test.txt", GENERIC_WRITE, 0, 
                    NULL, CREATE_ALWAYS, 0, NULL);
                WriteFile (hFile, a1, sizeof(a1), &dwSort, FILE_BEGIN);
хотя вы знаете, в wоrdpad открывается, цифры человеческим языком показываются. наверное удовлетворюсь этим и не буду морочить вам голову спасибо


delias

Использовали бы все Unicode - было бы нам счастье