printf "%n" 说明符无法正常工作
printf "%n" specifier not working properly
我从极客那里为极客复制了这段代码。
#include<stdio.h>
int main()
{
int c;
printf("geeks for %ngeeks ", &c);
printf("%d", c);
getchar();
return 0;
}
它应该打印从 start 到 %n
的字符,然后是打印的字符数:
但是当我执行它时,它正在打印:
看来问题出在老版本的MingW默认没有设置__USE_MINGW_ANSI_STDIO
,而新版本则不然,你可以做的是在你的文件中手动定义它程序:
# define __USE_MINGW_ANSI_STDIO
#include <stdio.h>
int main()
{
//...
}
或者直接在编译命令上使用:
gcc main.c -o main.exe -D __USE_MINGW_ANSI_STDIO
我从极客那里为极客复制了这段代码。
#include<stdio.h>
int main()
{
int c;
printf("geeks for %ngeeks ", &c);
printf("%d", c);
getchar();
return 0;
}
它应该打印从 start 到 %n
的字符,然后是打印的字符数:
但是当我执行它时,它正在打印:
看来问题出在老版本的MingW默认没有设置__USE_MINGW_ANSI_STDIO
,而新版本则不然,你可以做的是在你的文件中手动定义它程序:
# define __USE_MINGW_ANSI_STDIO
#include <stdio.h>
int main()
{
//...
}
或者直接在编译命令上使用:
gcc main.c -o main.exe -D __USE_MINGW_ANSI_STDIO