相关疑难解决方法(0)

%n格式说明符程序在不同的编译器上给出不同的输出.为什么?

%n这个问题上,我正在阅读C中的格式说明符.但是当我在不同的C++编译器上尝试以下程序时,它给了我不同的输出.

为什么?是什么原因?是否存在未定义或实现定义的行为?

#include<stdio.h>

int main()
{
  int c = -1;
  printf("geeks for %ngeeks ", &c);
  printf("%d", c);
  getchar();
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出:

代码块13.12 :(正确输出)

geeks for geeks 10
Run Code Online (Sandbox Code Playgroud)

Borland/CodeGear/Embarcadero C++ :(正确输出)

geeks for geeks 10
Run Code Online (Sandbox Code Playgroud)

Orwell Dev C++:

geeks -1
Run Code Online (Sandbox Code Playgroud)

Microsoft Visual Studio 2010:

Debug assertion failed ("'n' format specifier disabled",0) 
Run Code Online (Sandbox Code Playgroud)

c c++ printf

18
推荐指数
1
解决办法
1081
查看次数

标签 统计

c ×1

c++ ×1

printf ×1