WeG*_*ars 3 c++ linux gcc mingw
我通过Mingw在Windows上编写了一个linux程序.但是,转换并不完美.例如,在Windows上输出是这样的(我得到'zu'而不是实数):
Approximated minimal memory consumption:
Sequence : zuM
Buffer : 1 X zuM = zuM
Table : 1 X zuM = zuM
Miscellaneous : zuM
Total : zuM
Run Code Online (Sandbox Code Playgroud)
事实证明,Mingw不支持%zu,但它提供了一种解决方法.在他们的网站上,他们说:
由于您使用的是Microsoft的实现,因此无法使用.在包含stdio.h之前,直接使用mingw_printf或将USE_MINGW_ANSI_STDIO定义为1.
所以,我在我的程序中进行了搜索,我发现cdhit-common.h是唯一一个有#include行的文件.所以,我在该行上方定义了USE_MINGW_ANSI_STDIO并编译:
#include<iostream>
#include<fstream>
#include<iomanip>
#include<cstdlib>
#define USE_MINGW_ANSI_STDIO 1
#include<stdio.h>
...
Run Code Online (Sandbox Code Playgroud)
它编译但程序仍然输出'zu'而不是数字.我做的不错吗?为什么没用?
注意:使用mingw时,使用USE_MINGW_ANSI_STDIO的解决方案适用于mingw64.我希望是适用于这两个平台.
我现在设法谷歌的宏是: __USE_MINGW_ANSI_STDIO
.试试吧.
归档时间: |
|
查看次数: |
384 次 |
最近记录: |