
quint8 tempBuf[10000128] = {0};
//!打印tempBuf前100个元素。
qDebug()<<QByteArray((char)tempBuf, 100);
#include
int main()
{
int n ;
scanf("%d",&n);
while(n>0)
{
printf(" %d",n%10);
n = n / 10;
}
printf("\n");
return 0;
}
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。
C语言输入输出函数有很多,标准I/O函数中包含了如下几个常用的函数:
标准输入输出:
1 scanf, printf
int scanf(const char format, arg_list)
scanf主要从标准输入流中获取参数值,format为指定的参数格式及参数类型,如scanf("%s,%d",str,icount);
它要求在标准输入流中输入类似"son of bitch,1000"这样的字符串,同时程序会将"son of bitch"给str,1000给icount。
scanf函数的返回值为int值,即成功赋值的个数,在上例中如果函数调用成功,则会返回2,所以我们在写程序时,可以通过语句
if( scanf("%s,%d",str,icount) != 2)
{
}
来判断用户输入是否正确
例子:
#include <stdioh>
#include <stdlibh>
int main()
{
printf("Input Data:\n");
char str[64];
int num;
scanf("%s,%d", str, &num);
printf("%s,%d", str, num);
return 0;
}
Input Data:
nihao,1
nihao,1,2009091631
此处将","当做了与前面的nhao以及1一起的字符串。注意scanf时,是以空格,制表符以及回车作为变量之间的分割的。
因此在使用scanf时尽量采用这几个作为分割标记。而不要像scanf("%s,%d", str, &num);,它无法正确输入数据。
int printf(const char format, arg_list)
printf主要是将格式化字符串输出到标准输出流中,在stdioh头文件中定义了标准的输入和输出,分别是stdin,stdout。
arg_list可以是变量名,也可以是表达式,但最终都会以值的形式填充进format中
格式化输入输出:
1 格式控制
格式控制是用双引号括起来的字符串,也称"转换控制字符串",它包含以下两部分信息。
格式说明:由"%"和格式字符组成,如%d,%f,%c,它的作用是把输出数据转换为指定格式输出,格式的说明总是由"%"字符开始的
普通字符:需要原样输出的字符,或者是一些有特殊含义的字符,如\n,\t。
\n 换行
\f 清屏并换页
\r 回车
\t Tab符
\xhh 表示一个ASCII码用16进表示,其中hh是1到2个16进制数
2 输出列表
就是需要输出的一些数据,也可以是表达式,如果在函数中需要输出多个变量或表达式,则要用逗号隔开。
一些特殊字符的输出:
单引号,双引号,和反斜杠的输出在前面加转义字符”\”,如:"\’", "\"", "\\"。
% 的输出用两个连在一起的%%,即 printf(“%%”);
常用的格式说明如下:
格式字符
d 以十进制形式输出带符号整数(正数不输出符号)
o 以八进制形式输出无符号整数(不输出前缀0)
x 以十六进制形式输出无符号整数(不输出前缀0x)
u 以十进制形式输出无符号整数
f 以小数形式输出单精度实数
lf 以小数形式输出双精度实数
e 以指数形式输出单、双精度实数
g 以%f,%e中较短的输出宽度输出单、双精度实数
c 输出单个字符
s 输出字符串
特殊:
对64位整数的输入输出,在POJ上的C++环境下(即VC),64位整数是:
__int64 (注意int前面是两个下划线),输入输出格式为”%I64d”
在G++环境下(即Dev C++) 64位整数是
long long 输入输出格式为”%lld”
输出宽度
用十进制整数来表示输出的最少位数。注意若实际位数多于定义的宽度,则按实际位数输出,若实际位数少于定义的宽度则补以空格或0。
可以在"%"和字母之间插进数字表示最大宽度。
%92f 表示输出场宽为9的浮点数,其中小数位为2,整数位为6,小数点占一位,不够9位右对齐。
%8s 表示输出8个字符的字符串, 不够8个字符右对齐。
我先来抛砖引玉吧
1)内嵌VC开发的话,可以使用visualstudio的各种C++功能,文本编辑/自动补全/调试等等和普通的C++开发差不多,gui界面会调用designer插件,这个vc/eclipse/kdevelop/qtcreator都一样。相对来说比较方便。但是因为visualstudio不支持并行编译(至少vsnet2008还不支持),因此编译较慢。如果是写了makefile,或者利用qt生成vc格式的makefile,那么qtgitorisorg上有一个项目叫jom,和nmake基本兼容,但是支持并行编译,这个只能在命令行里面用
2)eclipse,给我的感觉怎么说呢,就不像是给C/C程序员使用的IDE,它其实也就是用qt插件创建gui,在编译过程中插入moc/uic/r处理。编译速度要看是在windows下还是linux下,如果是wndows,eclipse使用的是mingw工具链,因此编译速度很慢。linux下用的是g工具链,因此速度较快
3)kdevelop分为3x版本的和4x版本的,3x版本的比较成熟,但是有些功能不太容易使用,比如一个很简单的添加已存在的文件到项目中的 *** 作,用kdevelop就是没有很直观的方式。不是很好用
4)qtcreator,我觉得比kdevelop和eclipse好用,比visualstudio2008当然还是差一些。比如它的文件的编码格式(gb2312/iso88159-1/utf-8/big5)之类的设置,有时候似乎没有生效,我用kate或者gedit打开之后发现qtcreator编码格式转换没有起作用。
这些工具在gui编码和qt特有的功能(信号/槽、属性、moc/uic/r)方面基本相同,都是调用qtdesigner插件。在编译速度方面,eclipse(win32)=QTCREATOR(WIN32MINGW)qtcreator>eclipse=kdevelop
字符集问题:windows默认的是GBK 字符集,而Qtcreator编辑器的默认字符集是UTF-8,所以毫无疑问会输出乱码。
字符集之间转换:LPSTR LPWSTR
LPWSTR转变成LPSTR
LPTSTR pp =L"i am a strudent";
LPSTR p =newCHAR[100];
WideCharToMultiByte(CP_ACP, 0, pp, -1, p, 100, NULL, NULL);
输出:p ="i am a strudent";
LPSTR转变成LPWSTR
LPWSTR pp =newTCHAR[100];
LPSTR p ="i am a strudent";
MultiByteToWideChar(CP_ACP, 0, p, -1, pp, 100);
输出:pp ="i am a strudent";
备注:WideCharToMultiByte与MultiByteToWideChar中第6个参数设置为零时,则不进行转换,而直接返回出对应转换所需要的存储区大小。故而实际使用中常如下:
LPSTR p ="i am a strudent";
intmm = MultiByteToWideChar(CP_ACP, 0, p, -1, NULL, 0);
LPWSTR pp =newTCHAR[mm];
MultiByteToWideChar(CP_ACP, 0, p, -1, pp, mm);
delete[] pp;
最简单的方式是改qtcreator的字符编码
然后重新创建项目 和文件,或者使用其它可转码的编辑器转码后把项目文件再拷回来。
以上就是关于qt如何输出整个数组的内容全部的内容,包括:qt如何输出整个数组的内容、如何用c语言输出1~10、VS2012调试时输出C标准输入输出流等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)