В программе на C++ под Windows 7 с использованием VS2013 и под Ubuntu 14.04.1 с использованием g ++ 4.6 я озадачен работой printf().printf с модификатором ширины не может печатать значение
При использовании модификатора второй ширины вместо пробела выбирается пробел 0.
При установке на другое значение, например, -1, оно печатает его. Без модификатора он печатает 0, как и ожидалось.
Я вставил фактический, соответствующий код в другую программу, и он вел себя одинаково.
В чем может быть проблема?
#include <stdio.h>
int main(){
int x = 1, z = 0;
printf ("%2.d: %2.d\n", x, z); // fails to print 0
printf ("%2.d: %d\n", x, z); // 2nd %2. absent, prints as expected
return 0;
}
Выход:
1:
1: 0
вам нужен другой номер после того, или '' звездочка '*'. Например,% 2.2d будет печатать как минимум 2 цифры. См. Http://www.cplusplus.com/reference/cstdio/printf/ –