2
我试图做一个简单的sprintf
这样的:ISO C,sprintf和十进制转换分组数千
snprintf(dest, maxlen_dest, "%'lu", along);
注意报价:字符串中'
。
这意味着(根据说明书):
分组字符 '对于十进制的转换(I,d,U,F,F,G,G)输出到与成千上万被 分组'如果区域设置 信息指示任何。请注意,许多版本的gcc(1)不能解析此选项,并会发出警告。 SUSv2不包括 %'F。
所以,当我编译,我得到这样的警告:
../common/utils.c:29: warning: ISO C does not support the ''' printf flag
../common/utils.c:29: warning: ISO C does not support the ''' printf flag
所以,我的问题是:是否有一个功能,“支持‘’” printf的标志”我可以使用?
我希望我的输出是这样的:
51 254 234
1 424 000
...
...
...
这里是我的Makefile文件(如果有一些选项,我应该修改):
CC = gcc
# -g = all debug options
CFLAGS = -g -I../common -W -Wall -pedantic -std=c99
OBJECTS = o/main.o o/opts.o o/verif_liens_bidirectionnels.o o/ecriture.o o/plugin_utils.o o/plugin_algo_groupes.o ../common/o/cell.o ../common/o/utils.o ../common/o/verif.o ../common/o/lecture.o
gen : $(OBJECTS)
$(CC) -o gen $(OBJECTS) $(CFLAGS) -lm -lgd -lz
o/main.o : main.c
$(CC) -o [email protected] -c main.c $(CFLAGS)
o/opts.o : opts.c opts.h
$(CC) -o [email protected] -c opts.c $(CFLAGS)
o/verif_liens_bidirectionnels.o : verif_liens_bidirectionnels.c verif_liens_bidirectionnels.h
$(CC) -o [email protected] -c verif_liens_bidirectionnels.c $(CFLAGS)
o/ecriture.o : ecriture.c ecriture.h
$(CC) -o [email protected] -c ecriture.c $(CFLAGS)
o/plugin_utils.o : plugin_utils.c plugin_utils.h
$(CC) -o [email protected] -c plugin_utils.c $(CFLAGS)
o/plugin_algo_groupes.o : plugin_algo_groupes.c plugin_algo_groupes.h
$(CC) -o [email protected] -c plugin_algo_groupes.c $(CFLAGS)
../common/o/cell.o : ../common/cell.c ../common/cell.h
$(CC) -o [email protected] -c ../common/cell.c $(CFLAGS)
../common/o/utils.o : ../common/utils.c ../common/utils.h
$(CC) -o [email protected] -c ../common/utils.c $(CFLAGS)
../common/o/verif.o : ../common/verif.c ../common/verif.h
$(CC) -o [email protected] -c ../common/verif.c $(CFLAGS)
../common/o/lecture.o : ../common/lecture.c ../common/lecture.h
$(CC) -o [email protected] -c ../common/lecture.c $(CFLAGS)
clean :
rm $(OBJECTS)
我可以请你告诉我到底在Makefile要改变什么?我试过类似'o/plugin_utils.o:plugin_utils.c plugin_utils.h CFLAGS = $(filter-out -pedantic,$(CFLAGS))'但它没有工作 – 2012-03-02 10:32:21
@Oliver:只需粘贴上面的行逐字地写入makefile,例如在实际规则之前(参见http://www.gnu.org/software/make/manual/make.html#Target_002dspecific);不要把':='改成'='(你想要一个简单的扩展变量,因为你在它的定义中引用了相同的变量),不要试图加入规则...... – Christoph 2012-03-02 12:48:48
非常感谢你, ! – 2012-03-02 14:07:32