2013-08-16 4 views
0

У меня есть эта команда в моем проекте (в C):Printf (% s) печатает 0

int addFinalDataStr(char* value) 
{ 
    fprintf(objFile,"%-7.7s\n",value); 
    fflush(objFile); 
} 

Когда я называю этот метод со значением, как: "60100", он печатает "60100" без проблем, но когда я называю это строкой вроде "37777777773", она просто печатает "0".

+0

Вы проверили возвращаемое значение? Это не должно быть отрицательным. – user35443

+1

Какой компилятор вы используете? Просто попробовал это на кодовом блоке, и это сработало для меня ... (http://codepad.org/1hzQE2EC) – Jimbo

+0

Покажите нам полную автономную программу, которая обнаруживает проблему. http://sscce.org/. Возникает ли проблема, если вы используете 'printf', а не' fprintf (objFile, ...) '? Вы пробовали настроить строку формата? –

ответ

0

Я думаю, что ваша ошибка вызвана проверкой компилятора другим компилятором (я рекомендую вам компилятор GCC) и посмотреть, работает ли он.

+0

Я не думаю, что достаточно информации, чтобы обвинить компилятор (или библиотеку времени исполнения, если на то пошло). Нам нужна полная автономная программа. –

0

Есть вопросы

printf("%-7.7s\n", "60100"); 
// should print "60100 ", not "60100" as OP states 

printf("%-7.7s\n", "37777777773"); 
// should print "3777777", not "0". 

Оказывается, компилятор не соответствует или что-то критическое отсутствует должность.

Смежные вопросы