unix sprintf issue
От: Аноним  
Дата: 17.03.10 15:11
Оценка:
есть простейший код
sprintf(debitAmt11, "%011s", debitAmt);

который увеличивает длинну строки до 11 символов предшествующими нулями. Компиляция и выполнение предполагается на таких платформах:
1. Компил:
CC -xildoff -mt -Drdbms -DSOLARIS  -DBT_UNIX -DBT_SOLARIS -xildoff -DMODULE_NAME='"ConvModule"' -I/usr1/srcsunos/src/include    -DDEBUG -DDEBUG_GLOBAL=DEBUG_LVL_ALL -g  -g -xs  -features=rtti -DARBORBP -DOS_SOLARIS_2_6  -DOS_STL_ASSERT -DOS_NO_WSTRING  -DOS_MULTI_THREADED -DOS_SOLARIS_PTHREADS -mt -library=iostream -DOS_REALTIME -DOS_NO_TYPEID  -ptr. -KPIC  -c ConvModule.cpp

Исполнение: SunOS testsrv4 5.8 Generic_117350-46 sun4u sparc SUNW,Ultra-4

2. Компил:
g++ -Wno-deprecated -Wno-non-template-friend -Drdbms -fPIC -DLINUX  -DBT_UNIX -DBT_LINUX -m64 -DBUILD64BIT -pthread -D_REENTRANT -DMODULE_NAME='"ConvModule"' -I/usr1/srclinux/src/include    -DDEBUG -DDEBUG_GLOBAL=DEBUG_LVL_ALL -g  -g  -DARBORBP -DOS_STL_ASSERT -DOS_NO_WSTRING -DOS_MULTI_THREADED -DOS_REALTIME -DOS_NO_TYPEID   -c ConvModule.cpp

Исполнение: Linux testsrv2 2.6.18-164.6.1.el5 #1 SMP Tue Oct 27 11:28:30 EDT 2009 x86_64 x86_64 x86_64 GNU/Linux

Но код работает так как задумано только на варианте 1, на втором в начало дописывает пробелы.
Не силен в С++ и тем более ничего не смыслю в компиляторах под *никсы. Что можно/нужно поправить?
Спасибо.
c++ linux string sprintf
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.