c-关于C字符串数组格式化输出的一些小问题

问题描述

关于C字符串数组格式化输出的一些小问题

尝试写了一个输入输出文件和小程序,因为出问题的就只有这两行代码,所以没有把其他代码贴上来
最初代码是这样的 head[][5]

char head[][5] = { "id", "name", "age", "grade" };
fprintf ( input_file, "%st%st%st%sn", head[0], head[1], head[2], head[3] );

但是输出后会看到grade后面有一个 ? 字符
但是将 head[][5] 改成 head[][6] 就不会出现这个问题
head 数组最长的元素也只有5个字符啊,但是为什么输出的时候会变成这样?
是因为 的关系吗?

解决方案

是因为 的关系,长度 5 时就没有了,sizeof(head[3]) 是等于 6 的,可以改为 fnprintf

解决方案二:

char head[5][]这才是定义5个数组
你的写法是定义了n个(实际上是4个)数组,每个长度是5
那么就放不下了。

时间: 2024-09-30 12:39:21

c-关于C字符串数组格式化输出的一些小问题的相关文章

java字符串与格式化输出的深入分析_java

1.String类.StringBuilder类.StringBuffer类String对象是不可变的,重载了运算符+,于是String s="a"+2+"b"+2.2;这条语句就创建了4个String对象对象,把最后创建的对象引用赋给s. 但是String类定义了许多常用的对字符串进行操作的方法:取字符串长度length.判断是否为空串isEmpty.返回字符数组或字节数组toCharArray().取得指定索引的字符charAt().字符串比较equals()c

java题,如何将数组中的数据格式化输出?(有代码)

问题描述 java题,如何将数组中的数据格式化输出?(有代码) 例如这串代码 import java.util.*; class gongzi{ public static void main(String[] args){ Scanner kb=new Scanner(System.in); int n=kb.nextInt(); int i; String k=""; for(i=0;i<n;i++){ String name=kb.next(); String f=name

java-Java中如何截取字符串数组中一段数字按大小进行排序,再输出整个排序后的字符串?

问题描述 Java中如何截取字符串数组中一段数字按大小进行排序,再输出整个排序后的字符串? String[] meg ={"1#zhang#3207237","2#Wang#3207232"...}根据最后的数字大小排序后输出 解决方案 帮助lz实现了一下,望采纳 import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.uti

C# 如何在弹出的对话框中输出字符串数组的所有值

问题描述 想在弹出对话框的时候,把一个字符串数组的每个子串加载对话框的显示内容中.我用了foreach循环,但每次都是一个子串弹出一个对话框显示,数组中有多少个,就弹出多少个对话框...,想要一次性加载显示全部内容,大概就是这样,小白求解. 解决方案 解决方案二:string.Join(",",arr) 将结果作为要输出的内容解决方案三:谢谢,解决了

Docker --format 格式化输出概要操作说明

Docker CLI 的 --format 参数提供了基于 Go模板 的日志格式化输出辅助功能,并提供了一些内置的增强函数. 本文结合 docker 日志输出格式化的具体操作示例,先简要介绍 Go模板的常用语法,再介绍 Docker 内置增强函数的使用. 什么是模板 上图是大家熟悉的 MVC 框架(Model View Controller): Model(模型,通常在服务端)用于处理数据.View(视图,客户端代码)用于展现结果.Controller(控制器)用于控制数据流,确保 M 和 V

Python 3.2官方文档教程之格式化输出

一个程序的输出有好多种方式,数据既可以用人们读懂的形式打印出来或者写入到文件以便将来使用.这章就讨论这些问题. 5.1 格式化输出 目前我们已经接触了两种输出值方式: 表达式语句和print()函数.(第三种就是使用file对象中的write()方法;标准的文件输出可参考sys.stdout库文件) 常常你会想控制输出格式化的数据而不是简单用空格分隔的字符.这里有两种方式用来格式化你的输出数据.第一种方式就是由你自己处理所有的字符串,用字符串中的切分或者链接操作你可以创建任何你想要是的字符.标准

驯服Tiger: 格式化输出

J2SE 1.4 版原来的计划是包括对格式化输出的支持.可能由于时间限制及这个功能对新版本的发布不起决定作用的缘故,在发表的版本中没有加入这些功能.现在有了 Tiger,对打印带格式的字符串有了内在支持. 对于那些从一开始就使用 Java 编程而从没有接触过 C 的人,或者,对那些对 C 没有足够了解的人,格式化字符串是一些古怪的文本串,它们指定一组变量的输出特性.不是用加号将字符串连接在一起(如 firstName + " " + lastName ),而是提供一个字符串描述输出,并

python中日期和时间格式化输出的方法小结

 这篇文章主要介绍了python中日期和时间格式化输出的方法,实例总结了Python常见的日期与事件操作技巧,非常具有实用价值,需要的朋友可以参考下     本文实例总结了python中日期和时间格式化输出的方法.分享给大家供大家参考.具体分析如下: python格式化日期时间的函数为datetime.datetime.strftime():由字符串转为日期型的函数为:datetime.datetime.strptime(),两个函数都涉及日期时间的格式化字符串,这里提供详细的代码详细演示了每一

c++-函数中字符串用cout输出与字符串长度没有关系吧!

问题描述 函数中字符串用cout输出与字符串长度没有关系吧! 下面的代码运行于VS2012的编译环境,目的是为了对出现的19个国家名称进行按大到小排序,遗憾的是,结果结果并没有得出. 但有一点,若是将主程序中的 pCountryName这一指针数组中的"United States of America"缩减一个字符如变为"United State of America",程序将运行无恙. 同样的代码,放置于Vc++6.0的编译环境却不会出现问题! 程序在执行过程中,