首页 > 编程知识 正文

c语言printf输出中文,怎么看字符串占多少字节

时间:2023-05-04 18:36:07 阅读:110876 作者:3895

printf格式printf函数的原型如下。

# include stdio.h

intprintf(constchar*format,

说每个函数的时候先写下那个函数的原型。 这个原型你们现在不能理解也没关系。 学习c语言后再看这个原型,你会发现很有参考价值。 深入理解函数有很大的价值。

printf的格式有四种。

1 ) printf (字符串(n );

#includestdio.hintmain(void ) ) printf ) Helloworld! n '; //n换行符return 0; (其中n表示换行的意思。 这是转义字符,之前提到字符常数时见过。 其中n是“新行”的缩写,是“新行”。

另外,请注意printf中的双引号和后面的分号必须位于英语输入法下。 双引号内的字符串可以是英语也可以是中文。

2 ) printf (输出控制)、输出参数;

#includestdio.hintmain(void ) ) {int i=10; printf(%d(n ),I ); /*%d是输出控件,d是十进制,后面的I是输出参数*/return 0; }此语句意味着以十进制输出变量I。

那么,既然I本身就是十进制,为什么还要用十进制输出I呢?

hxsdbd写为i=10,因为存储器存储的不是10这个十进制,而是10个二进制代码。 计算机只能运行二进制0,1代码,但0,1代码本身没有实际意义,可以表示任何类型的数据。 所以输出的时候强调用哪种二进制形式输出。 因此,为了告诉操作系统应该如何解密二进制数据,“输出控制”是必要的。

%x时以十六进制输出,%o时以八进制输出。 大家可以试试。

3 ) printf (输出控件1输出控件2…)、输出参数1、输出参数2、…);

#includestdio.hintmain(void ) ) {int i=10; int j=3; printf(%d%d(n ),I,j ); 返回0; }输出控件1为输出参数1,输出控件2为输出参数2……编译、链接,执行后,看看输出结果。

10 3

请注意。 为什么10和3之间有空间? 由于上面的%d和%d之间有空格,printf中的双引号内将按原样输出除输出控件和转义字符n外的所有剩余普通字符。 例如:

#includestdio.hintmain(void ) ) {int i=10; int j=3; printf(I=%d,j=%dn ),I,j ); 返回0; }现在再次编译、链接并尝试执行:

i=10,j=3

i=,空格和j=全部直接输出。 此外,请注意,无论是“顺序”还是“个数”,“输出控件”和“输出参数”始终是一一对应的。

4 ) printf (输出控制、非输出控制)、输出参数;

这实际上是上面的例子。 此时,存在着什么是“输出控制”,什么是“非输出控制”的问题。 很简单。 以%开头的东西基本上是输出控件。

输出控件中常用的输出控件主要包括:

控件描述%d以十进制整数数据的实际长度输出。 %ld输出长数据。 %mdm是指定输出字段的宽度。 数据位数小于m时,在左端填补空格,大于m时,以实际位数输出。 %u输出无符号整数(unsigned )。 输出无符号整数时也可以使用%d,此时将无符号转换为有符号数后输出。 但是,编程的时候最好不要这么写。 因为这样的话,就必须变换一次,让CPU做无用功。 %c用于输出字符。 %f用于输出实数,包含单精度和双精度,以小数输出。 不指定区域宽度,由系统自动指定,整数部分全部输出,小数部分进行超过6位、6位的四舍五入。 注意%.mf在输出实数时保留小数点后m位,m前面有点。 %o将作为八进制整数输出。 这个不怎么被使用。 要知道就好了。 %s用于输出字符串。 在%s上输出字符串与之前直接输出字符串相同。 但是,此时要定义字符数组或字符指针来存储或指向字符串。 这个稍后再解释。 %x (或%x或%#x或%#x )以十六进制格式输出整数很重要。 %x、%x、%#x、%#x之间的差异必须是%x (或%x或%#x或%#x ) ) ) ) )。 因为调试时经常会输出内存中的所有二进制代码,并用十六进制表示。 写下一个程序,看看四个不同之处。

#includestdio.hintmain(void ) ) {int i=47; printf(%x(n ),I ); printf(%x(n ),I ); printf('%#x(n ),I ); printf('%#x(n ),I ); 返回0; (在v

C++ 6.0 中的输出结果:
2f
2F
0x2f
0X2F

从输出结果可以看出:如果是小写的x,输出的字母就是小写的;如果是大写的X,输出的字母就是大写的;如果加一个#,就以标准的十六进制形式输出。

最好是加一个#,否则如果输出的十六进制数正好没有字母的话会误认为是一个十进制数呢!总之,不加#容易造成误解。但是如果输出 0x2f 或 0x2F,那么人家一看就知道是十六进制。而且%#x和%#X中,笔者觉得大写的比较好,因为大写是绝对标准的十六进制写法。

如何输出 %d、 和双引号

printf 中有输出控制符%d,转义字符前面有反斜杠,还有双引号。那么大家有没有想过这样一个问题:怎样将这三个符号通过 printf 输出到屏幕上呢?

要输出%d只需在前面再加上一个%,要输出只需在前面再加上一个,要输出双引号也只需在前面加上一个即可。程序如下:

# include <stdio.h>int main(void){printf("%%dn");printf("\n");printf("""n");return 0;}

在 VC++ 6.0 中的输出结果是:
%d

""

小结

printf 是C语言中非常重要的一个函数。经过上面的学习我们发现,其实它并不难。只要多编程多练习,很快就能掌握。

其次学完本节之后要知道为什么需要“输出控制符”。因为计算机中所有的数据都是二进制 0、1 代码,所以输出的时候要用“输出控制符”告诉计算机以什么形式将二进制数据显示出来。

输出控制符中,%d、%f、%s、%c 是最常用的,它们分别是输出整数、实数、字符串和字符的控制符。%.mf 虽然用得不多,但一定要重视。

最后 %x、%X、%#x、%#X 四种用法的区别只需要了解一下即可。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。