左侧图标可选省略时,如何让后续图标显示在正确位置?
问题分析与解决方案
你的代码存在三个核心错误
- C语言关键字大小写错误:
If必须写成小写的if,C语言严格区分大小写,大写的If会被编译器识别为普通标识符,导致else找不到对应的if分支,直接被忽略。 - if代码块缺少闭合大括号:
if块的结尾遗漏了},语法结构断裂,编译器无法正确解析if-else逻辑,这也是else分支未执行的关键原因。 - else分支输出语法错误:
"\<\"\ \ \ \ \")里的转义完全错误,多余的<"会导致HTML解析失效,空白占位符的写法也不符合规范。
修正后的代码示例
// 输出当前列的起始标签 fprintf(ouFile, "<td align=center>"); if (Authority > 5) { // 权限达标时输出按钮 fprintf(ouFile, "<button class=\"button1\" type=\"submit\" name=\"u049\">"); fprintf(ouFile, "Member History"); fprintf(ouFile, "</button>"); } else { // 无权限时输出空白占位符,确保列空间被占据 fprintf(ouFile, " "); } // 统一闭合当前列标签,保证列结构一致 fprintf(ouFile, "</td>"); // 后续列的起始标签正常输出 fprintf(ouFile, "<td align=center>");
额外优化建议
- 给HTML标签的属性值统一加上双引号(比如
type="submit"),符合HTML标准,避免潜在的解析问题。 - 可以给
<td>设置固定宽度(如<td align=center style="width: 160px;">),这样即使内容为空,列宽也保持固定,后续图标位置会更稳定。
内容的提问来源于stack exchange,提问作者WarwickWr
相关产品推荐
相关产品推荐

