c语言中scanf()、printf()函数

  函数调用scanf(“%d”,  &weight) 包含两个参数:“%d” 和&weight。C用逗号来隔开函数调用中的多个参数;

但是printf()和scanf()函数比较特殊,其函数数目可以不受控制。

  例如,我们可以使用1个、2个、3个甚至4个参数调用printf()函数。而程序需要知道参数的数目才能正常工作,这两个函数通过第一个参数确定后续参数的个数,方法是第一个参数字符串中的每个说明符对应了后面的一个参数。

  以下语句包含两个格式说明符:%d 和%d

    printf(“%d cats  aate %d cans of tuna  \n”, cats, cans);

  两个格式说明符告诉程序后面还有两个参数; 确实有2个:cats 和cans;

  必须保证格式说明符的数目同后面的参数数目相同。现在C通过一种函数原型机制检查函数调用是否使用了正确数目及类型的参数;

  但是这对printf()和scanf()函数不起作用,因为他们的参数数目是变化的;

    int scanf(const char *format, ...);  //man中的scanf()函数声明;

    

时间: 2024-10-12 13:41:49

c语言中scanf()、printf()函数的相关文章

C语言中的printf函数的输入输出问题

这个问题是个很基础,但是我一直不知道的问题,是同学问了之后才知道的,长知识了. 这里要注意的是,printf函数是从右向左计算,从左向右输出. 距离如下: #include <stdio.h> main() { int i=8; printf%d, %d, %d, %d\n",i,--i,i,i--); } 此程序输出结果为:7, 7, 8, 8.原因是,printf()函数中,i++,i-- 时,i的值是在printf()函数之后才会被刷新,所以在printf()函数中,i++,i

C语言中的system函数参数详解

http://blog.csdn.net/pipisorry/article/details/33024727 函数名: system 功   能: 发出一个DOS命令 用   法: int system(char *command); system函数已经被收录在标准c库中,可以直接调用 system()函数用于向操作系统传递控制台命令行,以WINDOWS系统为例,通过system()函数执行命令和在DOS窗口中执行命令的效果是一样的,所以只要在运行窗口中可以使用的命令都可以用SYSTEM()

c语言中的rewind函数,Win CE 不支持,可用fseek函数替换

FILE *read = fopen(cXmlFile,"rb"); if (read) { fseek(read, 0L, SEEK_END); int len = ftell(read); // c语言中的rewind函数就是把文件指针从你现在读取的位置,重新指向文件开头 // Win CE 不支持该函数,可用fseek函数替换 // rewind(read); fseek(read,0L,SEEK_SET); …… …… }

C语言中的system函数參数具体解释

http://blog.csdn.net/pipisorry/article/details/33024727 函数名: system 功   能: 发出一个DOS命令 用   法: int system(char *command); system函数已经被收录在标准c库中,能够直接调用 system()函数用于向操作系统传递控制台命令行,以WINDOWS系统为例,通过system()函数运行命令和在DOS窗体中运行命令的效果是一样的,所以仅仅要在运行窗体中能够使用的命令都能够用SYSTEM(

浅谈C语言中scanf(),gets(),getchar()函数区别与联系

众所周知,scanf函数和gets函数是从键盘输入数据的函数.其基本函数功能这里不做过多赘述,只对两个函数易错点深入分析. int main() { char a[20]; char b[20]; char c[20]; printf("请输入a字符串\n"); scanf("%s",&a); printf("请输入b字符串\n"); gets(b); printf("请输入c字符串\n"); gets(c); ret

C语言中的printf(),sprintf(),scanf(),sscanf()

在将各种类型的数据构造成字符串时,sprintf 的强大功能很少会让你失望.由于sprintf 跟printf 在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出.这也导致sprintf 比printf 有用得多. printf 语法: #include <stdio.h> int printf( const char *format, ... ); printf()函数根据format(格式)给出的格式打印输出到STDOUT(标准输出)和其它参数中.返回

C语言中 v...printf类函数的用法

C语言的自学渐渐接近尾声,今天学到了标准库中的stdarg.h头,里面关联了stdio.h头里面的一类函数:v...printf函数,里面举的例子看了之后还是不太明白,google了一下依旧不是很懂,所以自行测试了一下,以下是过程: 这一类函数书中列举了四个,原型分别有: int vfprintf(FILE *restrict stream, const char * restrict format, va_list arg); int vprintf(const char * restrict

c语言中的malloc函数

少壮不努力,大一的时候c语言学得不扎实,最近学数据结构的时候看到c语言中malloc函数都不知道了,这里记录一下,避免以后再忘. malloc的全称是memory allocation,中文叫动态内存分配,用于申请一块连续的指定大小的内存块区域以void*类型返回分配的内存区域地址,当无法知道内存具体位置的时候,想要绑定真正的内存空间,就需要用到动态的分配内存,且分配的大小就是程序要求的大小. 函数:void *malloc(int size); malloc 向系统申请分配指定size个字节的

C 语言中的printf()多参数输出问题

问题: x=1; y=2; printf("%d",x+y,x++,y++); 输出结果为什么是5? 首先解释一点,x+y,x++,y++是逗号表达式,逗号表达式的结果是最后一个表达式的结果. 但是在这里printf()函数是从左往右读取,然后将先读取放到栈底,最后读取的放在栈顶,处理时候是从栈顶开始的,所以我们看见的结果是,从右边开始处理的. 读取入栈:                                                           处理计算: