Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Ошибка в printf() при использовании %n


Автор: Lowe 28.12.2011, 21:07
простой пример кода из Шилдта

Код

#include <stdio.h>
 
int main(void)
{
  int count;
 
  printf("this%n is a test\n", &count);
  printf("%d", count);
 
  return 0;
}


компилится, запускается, но прерывается окном с ошибкой:

"Microsoft Visual C++ Debug Library"

"Debug Assertion Failed!
Program /**/main.exe
File f:\dd\vctools\crt_bld\self_x86\crt\src\output.c
Line: 1685

Expression:  ("'n' format specifier disabled", 0)

For information on how your program can cause an assertion
failure, see the Visual C++ documentation on asserts.

(Press Retry to debug the application)"

после чего в консоли выводится лишь "this"

П.С. наткнулся здесь точно такая же ошибка и говорят, что это всё студия виновата, а вопрос так и не решён
http://www.cyberforum.ru/cpp-beginners/thread218134.html

П.П.С. у меня Microsoft Visual C++ 2010, экспресс-выпуск - RUS

Автор: bsa 28.12.2011, 23:35
смотри внизу страницы: http://msdn.microsoft.com/en-us/library/hf4y5e3w(v=VS.80).aspx

Автор: Lowe 5.1.2012, 02:03
bsa, спасибо)  smile 

такой ещё момент
а вы уже знали об этом, или пришлось искать?
просто представить не могу, как мне можно было найти причину
не хочется спрашивать о мелочах, а самому уметь решать такие вопросы? поэтому

куда в первую очередь лезть? есть какой-нибудь алгоритм распознавания ошибок, что-то типа
if () {};
else if () {};
else () {};
?

Автор: sQu1rr 5.1.2012, 03:17
Цитата(Lowe @  5.1.2012,  02:03 Найти цитируемый пост)
куда в первую очередь лезть? есть какой-нибудь алгоритм распознавания ошибок, что-то типа
if (google) { be happy; };
else if (msdn) { be happy; };
else { forum.vingrad; };
? 

Для меня работает

Автор: boostcoder 5.1.2012, 14:24
Цитата(Lowe @  5.1.2012,  02:03 Найти цитируемый пост)
есть какой-нибудь алгоритм распознавания ошибок


Цитата(Lowe @  5.1.2012,  02:03 Найти цитируемый пост)
что-то типа
if () {};
else if () {};
else () {};

у тебя и в логике запросов ошибка ;)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)