C语言输出问题

作者&投稿:余茗 (若有异议请与网页底部的电邮联系)
c语言输出问题。~

你犯了C之大忌——返回了局部数组的指针。能正确输出一、二个元素是你的运气好,因为函数返回时,数组已被释放了,如果后来那里没有被“别人”占居,你就能输出正确数据来;若被”别人“改写了,你一个正确的也得不到了。一句话,那里已不是你的代码所能正确控制的空间了。你应该把数组安排在主函数里或声明为全局数组,而把它的指针传给函数去处理其中的元素才对。

最上边的的代表了输出宽度为6,其中小数点占4位;下边的也代表的输出宽度为六位,从字符串中截取4个字符

全角码是双字节码,要用双字节函数处理。
加头文件 #include <wchar.h>
用函数 wint_t putwchar(wchar_t wc);

下面是完整程序,产生4个全角竖线GB2312-1980国标码.为了让你清楚看到,添加了HTML头尾,可以用IE看.
#include <stdio.h>
#include <stdlib.h>
#include <wchar.h>
void main()
{
wchar_t a[2]= {0xa3,0xfc};
printf("<HTML><HEAD>\n");
printf("<META http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\"><HEAD>\n");
printf("<BODY><PRE>\n");
putwchar(a[0]);putwchar(a[1]);putwchar(a[0]);putwchar(a[1]);
putwchar(a[0]);putwchar(a[1]);putwchar(a[0]);putwchar(a[1]);
printf("</PRE></BODY></HTML>\n");
}
把上面的程序存为a.c
编译后得a.exe
在DOS窗运行
a.exe > aaa.html
用IE浏览aaa.html 可看到4个全角竖线.
全角竖线GB2312-1980国标码值0xa3fc. 程序用
putwchar(a[0]);putwchar(a[1]); 输出

如果用unicode,UTF-8,编码,需自己给相应的值.

#include<stdio.h>
#include<graphics.h>
main()
{int i,j,gdrive=DETECT,gmode;
initgraph(&gdrive,&gmode,"");
for(i=50;i<=230;i+=20)
for(j=50;j<=230;j++) /*双循环控制画点函数画出表格中的纵坐标线*/
putpixel(i,j,15);
for(j=50;j<=230;j+=20)
for(i=50;i<=230;i++) /*双循环控制画点函数画出表格中的横坐标线*/
putpixel(i,j,15);
}

你查一下ASCII 表,上面有相关的符合,只要用它的ASCII值就行了。
而且都是 CHAR 型的。

printf("│");

把程序贴出来看看啊


c语言输出的问题,49。 50是什么意思啊
49题 printf("%d,%d",(a,b),(b,a));意思是输出两个逗号表达式的值,首先计算第一个逗号表达式(a,b),结果是b的值,即4, 再计算第二个逗号表达式(b,a)的值,结果是a的值,即3。因此,选 B 50 同样是输出逗号表达式(a1,a2)的值,即a2的值,所以,选B 说明:逗号表达式的计算...

c语言输入输出问题
关于long long类型的输入输出:"%lld"和"%llu"是linux下gcc\/g++用于long long int类型(64 bits)输入输出的格式符。而"%I64d"和"%I64u"则是Microsoft VC++库里用于输入输出__int64类型的格式说明。Dev-C++使用的编译器是Mingw32,Mingw32是x86-win32 gcc子项目之一,编译器核心还是linux下的gcc。进...

C语言菜鸟求助!printf()函数输出的问题!
scanf("%lf",&x);意思按照%lf(double)的格式来读取一个数据,存到x的地址(&是取址符)对应的空间中,这样你输入的值实际上就是x的值。printf("sine of %lf is %lf\\n",x,s);意思按照%lf(double)的格式来打印x和s的值,其中前一个%lf 对应x,其中前一个%lf 对应s,这是一一对应的...

C语言函数问题:请问这个程序的输出答案是什么,需要解释为什么答案是这 ...
printf("%d, ", i); \/\/1.输出:2+,+空格 \/\/2.输出:6+,+空格 \/\/3.输出:42+,+空格 } \/\/1.第一次循环结束,i(全局,原为0)+1,值为1 \/\/2.第二轮循环结束,i(全局)+1,是2 \/\/3.第三轮循环结束,i为3 printf("%d\\n", i);\/\/输出外部变量i,其值为循环 退出...

c语言小问题,向大神求解。。
输出结果是:i=%d,j=%8 原因:int i=8,j=9;printf("i=%%d,j=%%%d\\n",i,j);\/\/因为%%表示输出一个%号,i=%%d,则输出i=%d,j=%%%d,前面两个%%输出一个%,后面%d的值为i值,i=8,则输出j=%8 加起来就是i=%d,j=%8 第二个问题:int a[][3]={8} ,第一个忽略不写,编译器会...

c语言问题:printf的格式怎么写
已知字符 ‘a’ 的ASCII码为 97 ,执行下列语句的输出是98, c。第1个printf函数,格式说明的个数是2,而输出项的个数是3,所以对于多余的输出项k不予输出;第2个printf函数,有两个%说明,第1个%后面的字符要原样输出。本题考查printf函数的格式。“%x”和“%o”分别表示以十六进制和八进制无...

C语言输出地址问题
首先,printf("i的地址为:%p",i);不是输出地址,而是输出i的值,但是会以16进制输出。如果输出i地址,应该是 printf("i的地址为:%p",&i);而%d就是以十进制输出i的值

关于c语言数据输出问题(刚学 很菜)
C语言的printf函数(格式输出函数)1 一般格式 printf(格式控制,输出表列)例如:printf("i=%d,ch=%c\\n",i,ch);说明:(1)“格式控制”是用双撇号括起来的字符串,也称“转换控制字符串”,它包括两种信息:①格式说明:由“%”和格式字符组成,它的作用是将输出的数据转换为指定的格式输出。②...

C语言编程问题:输出100以内个位数为6且能被3整除的所有数。
输出100以内个位数为6且能被3整除的所有数的源代码如下:include<stdio.h> int main(){ int i;for(i=1;i<100;i++){ if(i%10 == 6 && i%3 == 0)printf(" %d ",i);} return 0;}

c语言输出语句问题
32769L在计算机内部表示成:1000 0000 0000 0001即0x8001 将它按%d也即int型输出则是-32767 正常的机器对%ld即long型的输出应该是32769的即0x00008001 而你的机器输出的-2147418112即0x80010000可见16位反了。至于为什么,我也不清楚了,可能是你的编译器坏了或设置不正确。--- AM蘑菇:你这是32位...

浦口区17262573698: C语言中数据输出的一个问题!!! -
毋时瑞德: %g和%G是实数的输出格式符号. 它是自动选择%f和%e两种格式中较短的格式输出,并且不输出数字后面没有意义的零.

浦口区17262573698: C语言输出问题%d%c和%d%d -
毋时瑞德: 一般默认是空格或者是回车键隔开,但是也可以使用逗号,这对结果没有影响,比如: sacnf("%d,%d",&a,&b);这条语句就是以逗号隔开的,输入的值应是5,6回车

浦口区17262573698: 请问: c语言输出问题 -
毋时瑞德: 1、比如输入3,∵a的初始值为0∴所以第一次进行for循环时,a++*2,就是a先乘以2,然后a再+1,输出一个0以此类推,第二次for循环的时候 a=1 ,a*2=2 输出一个2第三次for循环的时候 a=2 ,a*2=4 输出4,∴最后输出024而不是24.2、在%d左边或者右边输入空格数目不同,得数之间一定会有字符间距的差异的,因为在C语言中,空格也当字符处理,看看ASCII码表就能找到032是空格回车,ASCII码13换行,ASCII码10空格,ASCII码32参考资料http://wenku.baidu.com/view/e6ea6bce0508763231121258.html

浦口区17262573698: C语言输出问题 -
毋时瑞德: #include <stdio.h>#include <stdlib.h> void main(int argc, char *argv[]){ char a='a',b='b',c='c'; printf("a%cb%c\tc%c\n",a,b,c); system("PAUSE"); return 0;}貌似答案应该是 aabb cc吧 还是我错了……

浦口区17262573698: c语言的输出问题
毋时瑞德: 因为括号里是逗号运算符c语言提供一种特殊的运算符,逗号运算符,优先级别最低,它将两式联接起来, 其求解过程先表达示1,后表达示2,整个表达示值是表达示2的值,如:3+5,6+8的值是14

浦口区17262573698: 一个C语言的输出问题 -
毋时瑞德: 输入必须按语句scanf("%d%d%d",&x,&y,&z);中的"%d%d%d"形式输入,三个数之间没有任何分隔符,而题目输入时有逗号,所以输出值不确定

浦口区17262573698: 关于c语言输出问题 -
毋时瑞德: #include void main() { int a=3,b=2; int x,c; printf("c=%d\n",(scanf("%d",&x),x)?a+b:a-b); } 我意思是这样,x为非0,则从C=a+b,x为0,c=a-b

浦口区17262573698: 简单的C语言输出问题 -
毋时瑞德: 输出格式控制的匹配顺序是从左向右匹配,所以%%d是先匹配%%,%%的作用是输出一个'%...

浦口区17262573698: C语言输出数据问题... -
毋时瑞德: 标准C语言库函数fprintf/printf格式字符串的转换说明形式是这样的:%[标志][最小输出宽度][.精度][长度修正符]类型 方括号括起来是可选项.标志是0或多个标志字符,可以是任意顺序,常用有以下几个:- 左对齐,缺省是右对齐.+ 带符号的...

浦口区17262573698: c语句输出问题
毋时瑞德: 我运行你的程序输出的是6,54(我的编译器是dev-c++) 原因是, char表示单个字符, c='/376'的结果是 c='6' 而字符6的ascii码是54 不过我想你问题里面/37应该是\376吧,这样的话可以得到?,-2的结果(这个?是在xp下才这样的) 这是由于char类型相当于是代符号的单字节整数 最高位是1的时候表示负数 首先\xxx是个8进制的数 \376换成十进制是254 表示为二进制是11111110 这个就是-2 知道补码的知识就不难了 -2 的原码=2的原码=00000010 取反为11111101 在加1就是11111110 就是无符号情况下的254

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网