警告: 格式字符串不是一个字面字符串而且没有待格式化的实参
答案:2 悬赏:80 手机版
解决时间 2021-11-16 07:50
- 提问者网友:斑駁影
- 2021-11-15 14:25
警告: 格式字符串不是一个字面字符串而且没有待格式化的实参
最佳答案
- 五星知识达人网友:摆渡翁
- 2021-11-15 15:53
printf函数原型
printf(char * fmt, ...);
fmt 为格式串
printf(char * fmt, ...);
fmt 为格式串
全部回答
- 1楼网友:持酒劝斜阳
- 2021-11-15 16:54
这也警告,编译器够先进啊,是不是漏掉一个双引号"
-------警告: 格式字符串不是一个字面字符串而且没有待格式化的实参-----追问不是啊....后面的没发追答复杂的字符串建议这样处理!
printf("%s",s);
有些输出格式和C字符串,和格式化输出的格式字符串有冲突。
这样的话,格式串,就不成为字符串了,虽然你的写法,没有漏写"却被当成漏写"处理了。
复杂格式字符串可以逐个输出,至少不出现在格式化输出的格式字符串中。
这样就可以避免不必要的麻烦!
另外,你给出的信息太少,很难判断问题所在,只能说明格式串有问题。被当成漏写双引号(")处理了
\ % * [] " 这些符号在C 字符串或格式化输出的格式字符串有特殊含义
C 字符串里,\" 被当成字符‘ “’ 如果 字符串以\"结束会出现,被当成漏写"处理的现象!
% * [] 在输出的格式字符串有特殊含义。
在字符串中不可以直接出现",一般写成\" 而不是‘ “’
-------警告: 格式字符串不是一个字面字符串而且没有待格式化的实参-----追问不是啊....后面的没发追答复杂的字符串建议这样处理!
printf("%s",s);
有些输出格式和C字符串,和格式化输出的格式字符串有冲突。
这样的话,格式串,就不成为字符串了,虽然你的写法,没有漏写"却被当成漏写"处理了。
复杂格式字符串可以逐个输出,至少不出现在格式化输出的格式字符串中。
这样就可以避免不必要的麻烦!
另外,你给出的信息太少,很难判断问题所在,只能说明格式串有问题。被当成漏写双引号(")处理了
\ % * [] " 这些符号在C 字符串或格式化输出的格式字符串有特殊含义
C 字符串里,\" 被当成字符‘ “’ 如果 字符串以\"结束会出现,被当成漏写"处理的现象!
% * [] 在输出的格式字符串有特殊含义。
在字符串中不可以直接出现",一般写成\" 而不是‘ “’
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯