首页 > 管理 > 问答 > 管理知识 > scanfil,Scanfil code是什么意思

scanfil,Scanfil code是什么意思

来源:整理 时间:2022-04-30 00:25:48 编辑:管理经验 手机版

1,Scanfil code是什么意思

Scanfil 一家公司叫这个,做PLC(工业控制用计算机)的,一般用来控制生产线的比较多一些。而生产不同的东西就要用到不同的生产流程,需对PLC进行编程,让机器做不同的动作,编程就是编写代码(CODE)。
Scanfil 代码的意思 再看看别人怎么说的。

Scanfil code是什么意思

2,C语言里面的lf是什么意思

%lf是C语言中double的格式字符,用于格式化输入输出。 double为双精度浮点类型,占8字节空间。 定义一个double的变量可以写作: double a; 输入语句可以写作: scanf("%lf", &a); 输出语句可以写作: printf("%lf",a); 这里的printf和scanf中,就是%lf的用法了。

C语言里面的lf是什么意思

3,手机版C语言编辑器

在C语言编译里,.EXE 是可运行程序。其他都不是。
#include<stdio.h> main() { printf("hello !!"); }

我用的notepad++

一个开源的编辑器

类似软件:c4droid(android) 下载地址: http://apkd.mumayi.com/11/112342/C__bianyiqi_C4droidhanhuaban_V3.33_mumayi_d2678.apk 希望可以帮助你。

手机版C语言编辑器

4,C语言scanf怎么用

scanf("a=%d,%d",&x,&y); scanf("输入的格式",输入到的地址);

应该是遇到非法数据的时候,scanf自动结束。

输入4个数时,前3个数正常获取并存储到变量中,其余数据暂存在缓存区中备用。第二次执行scanf函数的时候,从缓存区继续读取上次输入的数据。

如:输入1,2,3,4 这时第二次scanf执行时,缓冲区数据为,4 这时非法数值数据,scanf结束,然后执行printf语句,输出原来的a、b、c的值,以后每次循环时scanf都自动结束,所以会连续9次输出。

你可以试着输入1,2,3 4 看一下运行结果,就明白了(这一次运行正常)。

int x; scanf("%d",&x); scanf("格式控制",接收数据的变量的地址);例如变量x,它的地址就是&x
scanf("输入格式",输入到的地址) 补充一点, %d 整型 int %f 小数 float %u 无符号整数 unsigned int 加个l就成长的了,例如 %ld long int %lf double %I64d 是long long 或 __int64 输入到的变量不同,输入格式也就不同

5,c语言中scanf的用法

scanf是C语言中的一个输入函数,与printf函数一样,都被声明在头文件stdio.h里,因此在使用scanf函数时要加上#include 。(在有一些实现中,printf函数与scanf函数在使用时可以不使用预编译命令#include 。)它是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。scanf函数返回成功读入的数据项数,读入数据时遇到了“文件结束”则返回EOF。
这是c语言另人头疼的一个问题。 scanf 后面的参数,就是要 写变量的 地址。所以 int a,b; 就要 用 &a,&b 形式来调用 scanf. 可是,如果是字符串,char s[10]; scanf("%s",s); 参数 s 就 不要 &. 因为 s 就是 地址形式。 scanf("%d,%d", &a, &b); 还有,你这句输入时,a b 数据之间还要加逗号。例如 12,34 因为格式里有逗号。
#include "stdio.h"main(){ int a; scanf("%d",&a); printf("%d",a);}这里是把从键盘输入的数字赋给a,其中&a代表变量a在内存中的地址...整型数据类型即是无小数点的数字,比如1,2,4,-1一般定义为int而实型常量也叫浮点数简单来说就是有小数的数字,比如:3.1415926,5.141415223等,一般有2种精度的,分别定义为float,double...

6,在C语言里什么时候用scanf函数

scanf 的意思是把输入的值给送到地址,因此,如果参数已经是地址了,那么不需要 &,否则 需要用&取一下地址 scanf 格式输入函数 函数作用:按照变量在内存的地址将变量值存进去。 一般格式:scanf(格式控制,地址表列) 其中,格式控制: %d:以带符号的十进制形式输出整数 %o:以八进制无符号形式输出整数 %x:以十六进制无符号形式输出整数 %u:以无符号十进制形式输出整数 %c:以字符形式输出,只输出一个字符 %s:输出字符串 %f:以小数形式输出单,双精度数,隐含输出六位小数 %e:以指数形式输出实数 %g:选用%f或%e格式中输出宽度较短的一种格式,不输 出无意义的0 在格式控制的字母前面可以用几种常见的格式符的修饰符,作用如下: L:用于长整型整数,可加在格式符d,o,x,u前面 M(代表一个正整数):数据最小宽度 N(代表一个正整数):对实数,表示输出n位小数; 对字符串,表示截取的字符个数 地址列表:是由若干个地址组成的表列,可以是变量的地址,或字符串的首地址 举例: 用scanf函数输入数据。 #include<stdio.h> void main() { int a,b,c; scanf(“%d%d%d”,&a,&b,&c); printf(“%d,%d,%d\n”,a,b,c); } 运行情况:3 4 5 (回车) (输入a,b,c的值)3,4,5 (输出a,b,c的值) 使用scanf函数时应注意的问题 : (1)scanf函数中的“格式控制”后面应当是变量地址,而不应 是变量名。 (2) 如果在“格式控制”字符串中除了格式说明以外还有其他字符, 则在输入数据时在对应位置应输入与这些字符相同的字符。 (3) 在用“%c”格式输入字符时,空格字符和“转义字符”都作为 有效字符输入 (4) 在输入数据时,遇以下情况时认为该数据结束。 ① 遇空格,或按“回车”或“跳格”(Tab)键; ② 按指定的宽度结束,如“%3d”,只取3列; ③ 遇非法输入。
scanf函数是C语言标准中的格式化输入函数,他的最简单作用是从标准输入设备(键盘)获取一个值到一个存储空间中 ex: scanf("%d",&a); 上例中语句的意思是,从键盘缓冲区读入一个值,放入a变量的存储空间,也就是a的值为你用键盘输入的值 故可得出结论,scanf用于从键盘输入数据时使用,可以理解为被用作人机交互的一个接口设备的控制函数 ps:标准输入设备不只有键盘一个,如果需要更换,还可以重定向至其他设备 满意请采纳,不满意请追问
scanf 用于输入 与printf函数一样,都被定义在头文件stdio.h里,因此在使用scanf函数时要加上#include <stdio.h>。它是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。 函数 scanf() 是从标准输入流stdio (标准输入设备,一般是键盘)中读内容的通用子程序,可以说明的格式读入多个字符,并保存在对应地址的变量中。 返回值 scanf()函数返回成功赋值的数据项数,读到文件末尾出错时则返回EOF。 如: scanf("%d %d",&a,&b); 如果a和b都被成功读入,那么scanf的返回值就是2 如果只有a被成功读入,返回值为1 如果a和b都未被成功读入,返回值为0 如果遇到错误或遇到end of file,返回值为EOF。 且返回值为int型. 例:使用scanf函数输入数据。 #include<stdio.h> int main(void) { int a,b,c; printf("输入a,b,c\n"); scanf("%d%d%d",&a,&b,&c); printf("a=%d,b=%d,c=%d\n",a,b,c); fflush(stdin); return 0; }
要存储输入的值的时候用scanf。比如要把3存到变量a中 scanf("%d",&a); 对应的是要输出的时候用printf. printf("%d",a); http://wenku.baidu.com/link?url=j6h1IlZBX_OHL2QAq81f8ynY7f5fXgUnwrggyb64KCOQ7ZF7LM9sssk-UqeuP_lIOAjPHpx8txx-CgXP1av-4HlHo5b6UKCNAmzlrZQN-O3 你可以看一下,希望对你有帮助
你要通过键盘输入数字字符时

7,c程序中scanf是什么意思

scanf()是C语言中的一个输入函数,属于格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。 与printf函数一样,都被声明在头文件stdio.h里,因此在使用scanf函数时要加上#include <stdio.h>。(在有一些实现中,printf函数与scanf函数在使用时可以不使用预编译命令#include <stdio.h>。) 拓展资料: 函数原型 int scanf(const char * restrict format,...);函数 scanf() 是从标准输入流stdio (标准输入设备,一般指向键盘)中读内容的通用子程序,可以说明的格式读入多个字符,并保存在对应地址的变量中。 函数的第一个参数是格式字符串,它指定了输入的格式,并按照格式说明符解析输入对应位置的信息并存储于可变参数列表中对应的指针所指位置。每一个指针要求非空,并且与字符串中的格式符一一顺次对应。 返回值 scanf函数返回成功读入的数据项数,读入数据时遇到了“文件结束”则返回EOF。 如:scanf("%d %d",&a,&b); 函数返回值为int型。如果a和b都被成功读入,那么scanf的返回值就是2; 如果只有a被成功读入,返回值为1; 如果a和b都未被成功读入,返回值为0; 如果遇到错误或遇到end of file,返回值为EOF。end of file为Ctrl+z 或者Ctrl+d。 例:使用scanf函数输入数据。 #include <stdio.h>int main(void){ int a,b,c; printf("Give me the value of a,b,c seperated with whitespaces:\n"); scanf("%d%d%d",&a,&b,&c); printf("a=%d,b=%d,c=%d\n",a,b,c); return 0;}&a,&b,&c中的&是寻址操作符,&a表示对象a在内存中的地址 ,是一个右值。变量a,b,c的地址是在编译阶段分配的(存储顺序由编译器决定)。 这里注意:如果scanf中%d是连着写的如“%d%d%d”,在输入数据时,数据之间不可以用逗号分隔,只能用空白字符(空格或tab键或者回车键)分隔——“2 (空格)3(tab) 4” 或 “2(tab)3(回车)4”等。若是“%d,%d,%d”,则在输入数据时需要加“,”,如“2,3,4”。 参考资料:scanf (计算机语言函数)百度百科
 
另外.cn/bbs。我个人认为是不是为了符合人的思考习惯://www,那咱们用的时候就得加.21ki,当初人家发明c语言时说scanf不需要加地址符.21ki,当然要它的地址了,放到某个变量里.即在编程后面输出结果中使用的命令,那咱们用的时候自然就不用加了,从键盘得到字符.cn/bbs,只要知道变量名就行了.php 里有很多教程 

scanf意思是从键盘输入数据scanf是c语言等二级语言的输出符号.php" target="_blank">www. 
到%0a

评论
|



scanf是C语言中的一个输入函数,与printf函数一样,都被声明在头文件stdio.h里,因此在使用scanf函数时要加上#include 。(在有一些实现中,printf函数与scanf函数在使用时可以不使用预编译命令#include 。)它是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。scanf函数返回成功读入的数据项数,读入数据时遇到了“文件结束”则返回EOF。
scanf是一个输入函数。例如 int a; scanf("%d",&a); 你在console输入:5 那么a=5了

8,scanf函数的用法

scanf()是C语言中的一个输入函数。 scanf函数的用法与printf函数一样,都被声明在头文件stdio.h里,因此在使用scanf函数时要加上#include <stdio.h>。(在有一些实现中,printf函数与scanf函数在使用时可以不使用预编译命令#include <stdio.h>。)它是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。 扩展资料: 使用scanf函数的注意问题: 1、在高版本的 Visual Studio 编译器中,scanf 被认为是不安全的,被弃用,应当使用scanf_s代替 scanf。 2、对于字符串数组或字符串指针变量,由于数组名可以转换为数组和指针变量名本身就是地址,因此使用scanf()函数时,不需要在它们前面加上"&"操作符。 3、 可以在格式化字符串中的"%"各格式化规定符之间加入一个整数,表示任何读操作中的最大位数。 4、scanf函数中没有类似printf的精度控制。 如: scanf("%5.2f",&a); 是非法的。不能企图用此语句输入小数为2位的实数。 5、scanf中要求给出变量地址,如给出变量名则会出错 如 scanf("%d",a);是非法的,应改为scanf("%d",&a);才是合法的。 6、 在输入多个数值数据时,若格式控制串中没有非格式字符作输入数据之间的间隔,则可用空格,TAB或回车作间隔。 C编译在碰到空格,TAB,回车或非法数据(如对“%d”输入“12A”时,A即为非法数据)时即认为该数据结束。 7、在输入字符数据(%c)时,若格式控制串中无非格式字符,则认为所有输入的字符均为有效字符。 参考资料来源:搜狗百科-scanf (计算机语言函数)
#include <stdio.h> void main() { char c1,c2,c3,c4,c5,c6; scanf("%c%c%c%c",&c1,&c2,&c3,&c4); c5=getchar(); c6=getchar(); putchar(c1); putchar(c2); printf("%c%c\n",c5,c6); } /* 作为一位编程人员,指出你所写的程序中的一个问题。在书写代码时,要在半角字符下书写。不要在全角字符下写,虽然调试时可以改正,但显得自己资历浅。 首先,了解下putchar,getchar表示的意思和作用。 putchar函数(字符输出函数)的作用是向终端输出一个字符。 一般格式为: putchar(c) getchar函数(字符输入函数)的作用是从终端(或系统隐含指定的输入设备)输入一个字符。 ****getchar函数没有参数**** 一般格式为: getchar() 当你从键盘输入123回车时,回车符也算入了字符的范围,就是c4为回车符,由于c5和c6还各自等待接受 从键盘输入的一个字符。所以在输入123回车时不会直接输出12,一直等到接受了c5和c6就依次打印出1245 注意putchar只能向终端输出一个字符,getchar只能接受一个字符, 虽然第一次输入了123和回车符,但是: putchar(c1); putchar(c2); 只能输出12两个字符。 虽然第二次输出了45678和回车符, 但是: c5=getchar(); c6=getchar(); 只能接受45. 所以输出1245了。 */
1.scanf函数的一般形式 scanf(格式控制,地址表列) int scanf(char *format[,argument,...]); “格式控制”的含义同printf函数;“地址表列”是由若干个地址组成的表列,可以是变量的地址,或字符串首地址。 scanf()函数返回成功赋值的数据项数,出错时则返回eof。 例题 scanf函数输入数据。 #include<stdio.h> void main(){ int a,b,c; printf("input a,b,c\n"); scanf("%d%d%d",&a,&b,&c); printf("a=%d,b=%d,c=%d",a,b,c); } 格式字符 说明 %a 读入一个浮点值(仅c99有效) %a 同上 %c 读入一个字符 %d 读入十进制整数 %i 读入十进制,八进制,十六进制整数 %o 读入八进制整数 %x 读入十六进制整数 %x 同上 %c 读入一个字符 %s 读入一个字符串 %f 读入一个浮点数 %f 同上 %e 同上 %e 同上 %g 同上 %g 同上 %p 读入一个指针 %u 读入一个无符号十进制整数 %n 至此已读入值的等价字符数 %[] 扫描字符集合 %% 读%符号 附加格式说明字符表修饰符 说明l/l 长度修饰符 输入"长"数据 h 长度修饰符 输入"短"数据 w 整型常数 指定输入数据所占宽度 * 星号 空读一个数据 hh,ll同上h,l但仅对c99有效。 (b) 空白字符空白字符会使scanf()函数在读操作中略去输入中的一个或多个空白字符,空白符可以是space,tab,newline等等,直到第一个非空白符出现为止。(c) 非空白字符一个非空白字符会使scanf()函数在读入时剔除掉与这个非空白字符相同的字符。 其他关于scanf的应用可以到下地址看, <a href="http://wenwen.soso.com/z/urlalertpage.e?sp=shttp%3a%2f%2fbaike.baidu.com%2fview%2f1390039.htm" target="_blank">http://baike.baidu.com/view/1390039.htm</a>
功 能: 执行格式化输入 用 法: int scanf(char *format[,argument,...]); scanf()函数是通用终端格式化输入函数,它从标准输入设备(键盘) 读取输入的信息。可以读入任何固有类型的数据并自动把数值变换成适当的机内格式。 其调用格式为: scanf("<格式化字符串>",<地址表>); scanf()函数返回成功赋值的数据项数,出错时则返回EOF。 其控制串由三类字符构成: 1。格式化说明符; 2。空白符; 3。非空白符; (A) 格式化说明符 格式字符 说明 %a 读入一个浮点值(仅C99有效) %A 同上 %c 读入一个字符 %d 读入十进制整数 %i 读入十进制,八进制,十六进制整数 %o 读入八进制整数 %x 读入十六进制整数 %X 同上 %c 读入一个字符 %s 读入一个字符串 %f 读入一个浮点数 %F 同上 %e 同上 %E 同上 %g 同上 %G 同上 %p 读入一个指针 %u 读入一个无符号十进制整数 %n 至此已读入值的等价字符数 %[] 扫描字符集合 %% 读%符号
D 123<回车> 后 c1==1,c2==2,c3==3,c4==10(回车) 之后c5=getchar();会把输入缓冲区的一个字符赋值给C5,所以c5=4 c6=getchar();由于输入缓冲区不为空,所以会自动取一个字符赋值给C6,所以c6=5
D putchar(c1);输出1 putchar(c2);输出2 c5=getchar();输入4 c6=getchar();输入5 printf("%c%c\n",c5,c6);输出4 5

9,scanf中的格式字符i的用法

)的数据都是以ASCII码存储的(包括回车)。 程序1 #include "stdio.h" void main() { char a; char b; scanf("%d",&a); scanf("%d",&b); printf("%d %d",a,b); } 键盘输入 97<回车> 第一次回车后,buffer中的ASCII:39h,37h,0AH(0A是换行的ASCII), scanf会根据格式字符串中的第一个%d对buffer按字节顺序读取,当读取到0A时,认为%d型的数据结束,此时把已经读取到的39h,37h依据%d转为整型数据97存储在字符型变量a中。(这里是除去了扫描截止点0AH) 此时buffer中已经无任何数据了。 96<回车> 第二次回车后,按同样的流程,scanf会根据格式字符串中的第二个%d对buffer按字节顺序读取。最终b得到96. 此时buffer中已经无任何数据了。 输出 97 96 程序2 #include "stdio.h" void main() { char a; char b; scanf("%c",&a); scanf("%c",&b); printf("%d %d",a,b); } 键盘输入 9<回车>buffer:39H,0AH 因为scanf会按照第一个%c格式扫描buffer(只扫描一个字节就结束),然后把扫描到的39H直接送到变量a(当以%d格式读出来时,39H就是57) 此时,buffer中只有:0AH。 然后,scanft又遇到第二个%c,继续扫描buffer,得到0aH并送入变量b. 此时buffer中已经无任何数据了 输出 57 10 程序3 #include "stdio.h" void main() { char a[100]; char b[100]; scanf("%s",a); scanf("%s",b); printf("%s %s",a,b); } 键盘输入 abc<回车> 第一次回车后,buffer:61H,62H,63H,0AH。 scanf会按照%s的格式对buffer按字节顺序扫描,当扫描到0AH时,结束扫描(按照%s的要求,空格20H也是扫描结束点)。 然后把扫描到的(除去最后一个判断扫描截至的字节0AH)数据直接送入以a为起始地址的字符串。 此时,buffer无任何数据了。 def<回车> 第二次回车后,buffer:65H,66H,67H,0AH.扫描的流程与上面的完全一致。 输出 abc def 程序4 #include <stdio.h> void main() { int i; char j; for(i=0;i<2;i++) scanf("%c",&j);/*注意这里%前没有空格*/ printf("%d",j); } 键盘输入 1<回车>, 这里scanf执行了两次(i==0时,与i==1时),而且每次都是想对j赋值。 第一次scanf,按%c的要求,只扫描buffer中的一个字节,但是buffer中并不数据,于是要求键盘输入数据到buffer,此时的1<回车>代表向buffer中输入了:31H,0AH。 然后按%c的要求,只扫描buffer中的一个字节:31h,并将它直接送入变量j. 此时,buffer中还留下:0AH。 第二次scanf要求键盘输入数据,按%c的要求,只扫描buffer中的一个字节:0Ah,并将它直接送入变量j. 此时,buffer无数据了。 最后,你用%d格式输出j的值(0AH换成整型就是10) 输出 10 程序5 #include <stdio.h> void main() { int i; char j; for(i=0;i<2;i++) scanf(" %c",&j);/*注意这里%前有一个空格*/ printf("%d",j); } 1<回车>2<enter>的情况: scanf会按照格式控制字符串的要求,顺序扫描buffer. 但是你其中有一个空格,这个很特殊,我也是第一次发现这个问题(一般我都不会在scanf中加入任何常量字符) 我测试了一下:我发现这个空格有吸收回车(0AH)和空格(20H)的“神奇功效”,吸收之后再要求buffer给一个字节,直到这个字节不是0AH或者 20H,此时把这个字节交给下一个格式字串。 第一次循环时遇到格式字串空格,就扫描buffer中的一个字节,但是buffer中无数据,要求从键盘输入数据:1〈回车〉,buffer中有数据了——31H,0AH。再读取到字节31H,scanf发现这个并不是0AH/20H,就把这个字节31H交给格式字符%c处理。 循环结束,此时buffer里面还有:0AH. 第二次循环时遇到格式字串空格,就扫描buffer中的一个字节——0AH,发现是0AH/20H,于是就要求buffer再来一个字节。此时buffer里面已经没有数据了,要求键盘输入:2<enter>. buffer中有数据了——32H,0AH。于是再读一个字节31H,scanf发现这个并不是0AH/20H,就把这个字节32H交给格式字符%c处理(j最终得到32H)。 循环结束,此时buffer里面还有:0AH. 这里有一篇关于Printf的帖子: 程序6 #include "stdio.h" void main() { int a; int b; scanf("%c",&a); scanf("%c",&b); printf("%d %d",a,b); } 键盘输入 1<回车> 问题5: 你的编译器VC认为%d数据应该是4个字节,但是你采用的是%c读数据, scanf("%c",&a);此句读到的是1的ascii码:31h.然后把31H直接送入地址&a(而并没有改写a的三个高字节地址)。 scanf("%c",&b);同理。 你可以用printf("a=%x,b=%x\n",a,b);来验证我说的。它们的最低字节肯定是31H,0AH。 PS1: 当你把 int a;int b;放在main()外进行定义时,a,b的初值就是0。此时你会得到正确的结果。 当你把 int a;int b;放在main()内进行定义时,a,b不会被初始化(它们的三个三个高字节地址的内容是不确定的),你就会得到上面错误的结果。(定义的动态变量都不会被初始化,静态变量会被初始化为0) PS2:以下也是不正确的用法。 char c; scanf("%d",&c);/当你用%d给c赋值时,会对从&c开始的连续4个字节进行赋值。当从buffer得到的值是在一个字节范围内(-128~127),下面是可以正常输出的。但是不管怎样,这样做是很危险的——越界。 printf("%d",c); =================请你测试下这个程序======================== #include "stdio.h" void main() { char c[4],i=4; scanf("%d",c);/*请输入258<回车>*/ while(i-->0) printf("%02x ",c[i]); printf("\n"); }/*如果得到的结果是00 00 00 01 02就说明我的结论是正确的(258的转为16进制数就是00 00 01 02H,然后scanf会把这个数放入以c为起始地址的) ================以下程序也是====================== #include "stdio.h" void main() { char c,i=4; char *p=&c; scanf("%d",&c);/*请输入258<回车>*/ while(i-->0) printf("%02x ",p[i]); printf("\n"); }
输出表列) 例如:printf("i=%d,ch=%c\n",i,ch); 说明: (1)“格式控制”是用双撇号括起来的字符串,也称“转换控制字符串”,它包括两种信息: ①格式说明:由“%”和格式字符组成,它的作用是将输出的数据转换为指定的格式输出。 ②普通字符,即需要原样输出的字符。 (2)“输出表列”是需要输出的一些数据,可以是表达式 (3)printf函数的一般形式可以表示为 printf(参数1,参数2,……,参数n) 功能是将参数2~参数n按参数1给定的格式输出 2.格式字符(9种) (1)d(或i)格式符。用来输出十进制整数,有以下几种用法: ①%d,按整型数据的实际长度输出。 ②%md,m为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。 ③%ld(%mld 也可),输出长整型数据。 例如:long a=123456; printf("%ld",a); (2)o格式符,以八进制数形式输出整数。格式:%o,%mo,%lo,%mlo都可。 (3)x(或X)格式符,以十六进制数形式输出整数。格式:%x,%mx,%lx,%mlx都可。 (4)u格式符,用来输出unsigned型数据,即无符号数,以十进制数形式输出。格式:%u,%mu,%lu都可。 参见:li4-3.c/*无符号数据的输出*/ (5)c格式符,用来输出一个字符。格式:%c,%mc都可。 (6)s格式符,用来输出一个字符串。格式:%s,%ms,%-ms,%m.ns,%-m.ns都可。 参见:li4-5.c /*字符串的输出*/ (7)f格式符,用来输出实数(包括单、双精度),以小数形式输出。格式:%f,%m.nf,%-m.nf都可。 注意:单精度实数的有效位数一般为7位,双精度为16位。 参见:li4-6.c/*输出单精度实数时的有效位数*/ li4-7.c/*输出双精度实数时的有效位数*/ li4-8.c/*输出实数时指定小数位数*/ (8)e(或E)格式符,以指数形式输出实数。格式:%e,%m.ne,%-m.ne都可。 (9)g(或G)格式符,用来输出实数,它根据数值的大小,自动选f格式或e格式(选择输出时占宽度较小的一种)。 3.说明 (1)除了X、E、G(用大写字母表示)外,其他格式字符必须用小写字母; (2)“格式控制”字符串内可以包含转义字符; (3)如果想输出字符“%”,则应该在“格式控制”字符串中用连续两个%表示,如: printf("%f%%",1.0/3); scanf()函数是所有C语言学习者在学习C语言过程中所遇到的第二个函数(第一个函数是printf(),Brian W.Kerninghan & Dennis M.Ritchie的“hello,world”程序基本上是所有的C语言学习者第一个范例),所以scanf()函数应当是C学习者能熟练运用的一个函数,但有很多初学者对此函数不能很好的运用,在实际编程中错误使用scanf()函数,导至程序产生某种错误不能正常运行,以至产生“scanf()函数有BUG”,“scanf()函数无用论”等等错误观点。 本文结合笔者在编程实践中及论坛上网友所遇到的问题作一释疑,但笔者水平有限(菜鸟级),难免有谬误之处,还望达人指点一二。(Email:knocker.k@126.com) 本文分上,下两篇讲述了C语言中的scanf()函数的用法,重点阐述使用scanf()函数过程中出现的常见错误及对策。当然,文中某些解决方法,均可以采用其他函数和方法来更好地解决,但本文仅限讨论scanf()函数本身。 上篇,详细介绍了scanf()函数控制串的构成。下篇,用实际例程介绍scanf()函数控制串运用出现的常见错误及对策技巧。 二、 scanf()函数的控制串 函数名: scanf 功 能: 执行格式化输入 用 法: int scanf(char *format[,argument,...]); scanf()函数是通用终端格式化输入函数,它从标准输入设备(键盘) 读取输入的信息。可以读入任何固有类型的数据并自动把数值变换成适当的机内格式。 其调用格式为: scanf("<格式化字符串>",<地址表>); scanf()函数返回成功赋值的数据项数,出错时则返回EOF。 其控制串由三类字符构成: 1。格式化说明符; 2。空白符; 3。非空白符; (A) 格式化说明符 格式字符 说明 %a 读入一个浮点值(仅C99有效) %A 同上 %c 读入一个字符 %d 读入十进制整数 %i 读入十进制,八进制,十六进制整数 %o 读入八进制整数 %x 读入十六进制整数 %X 同上 %c 读入一个字符 %s 读入一个字符串 %f 读入一个浮点数 %F 同上 %e 同上 %E 同上 %g 同上 %G 同上 %p 读入一个指针 %u 读入一个无符号十进制整数 %n 至此已读入值的等价字符数 %[] 扫描字符集合 %% 读%符号 附加格式说明字符表 修饰符 说明 L/l 长度修饰符 输入"长"数据 h 长度修饰符 输入"短"数据 W 整型常数 指定输入数据所占宽度 * 星号 空读一个数据 hh,ll同上h,l但仅对C99有效。 (B) 空白字符 空白字符会使scanf()函数在读操作中略去输入中的一个或多个空白字符,空白符可以是space,tab,newline等等,直到第一个非空白符出现为止。 (C) 非空白字符 一个非空白字符会使scanf()函数在读入时剔除掉与这个非空白字符相同的字符。
ctrl+z可以使scanf返回eof 楼上胡扯,楼上的楼上胡扯。 cout<<"输出个字符串有什么问题??"<回车继续输入数字->按ctrl+z,回车结束输入 unix之类则是ctrl+d(应该没记错)。 至于这个程序还有几处错误, 而且看了半天不知所谓, 这坨代码究竟是干什么用的?
scanf ("%d", &a); 这样就可以把 输入的整形数 传进来了。。但是你要处理八进制和16进制的话 建议你用 %s做输入条件 然后通过转换和判断来处理。。
其实i的用法和d的用法是一样的。都是以带符号的十进制形式输出整数(正数不带符号)。我举个简单的例子你就明白了。 eg: 在程序中要输出整数:a=5 格式如下: printf("%i",a)和 printf("%d",a)等效。 都是调用printf函数,其使用格式为printf(格式控制,输出列表) “格式控制”是要西文的双引号括起来的(就是在例子中的"%i"、"%d"),输出列表则是要输出的数据(即例子中的a)
文章TAG:scanfilScanfilcode是什么意思code是什么什么

最近更新