精华内容
下载资源
问答
  • 关于printf函数的返回值

    千次阅读 多人点赞 2019-01-06 20:54:38
    初学C语言时用的最多的函数就是printf函数,而printf函数的返回值是被大多数人忽略的,以至于很多应聘者在碰到关于printf返回值的编程时一头雾水。确实很少人会注意到这个,接下来就谈一谈printf返回值的问题。 先看...

    初学C语言时用的最多的函数就是printf函数,而printf函数的返回值是被大多数人忽略的,以至于很多应聘者在碰到关于printf返回值的编程时一头雾水。确实很少人会注意到这个,接下来就谈一谈printf返回值的问题。
    先看看下面的程序
    #include<stdio.h>
    int main()
    {
    int A=43;
    printf("%d\n",printf("%d",printf("%d",A)));
    }
    这个程序就是用了几个printf语句叠加。那么,这个程序会输出什么呢?

    输出结果为“4321”
    为什么呢?
    一,执行第三个printf,输出A的值“43”
    二,执行第二个printf,输出"printf("%d",A)“的值,在结果中对应的是"2”
    三,执行第一个printf,输出"printf("%d",printf("%d",A))“的值,为"1”
    由此我们看出,执行第二个printf时输出的"2"应该是"printf("%d",A)“返回值,而执行第一个printf时输出的"1"应该是第二个peintf的返回值。
    那么printf的返回值到底是什么呢?
    观察第二个printf的输出值和第三个printf的输出值,第一个printf的输出值和第二个printf的输出值不难发现:
    printf的返回值就是输出的字符数量
    第三个printf输出"43"字符数量为2,于是返回值为2,第二个printf就输出"2”
    第二个printf输出"2"字符数量为1,于是返回值为1,第一个printf就输出"1"

    要注意一点是:返回值是是输出的字符数量,包括数字,字母,标点符号,空格等。
    例如:
    #include<stdio.h>
    int main()
    {
    printf("%d\n",printf(“0,1,2,3\n”));
    }
    输出结果
    在这里插入图片描述
    第二个printf的返回值为8,包括四个数字,三个标点和一个换行符。

    展开全文
  • #include  #include  int main() { printf("%d", printf("%d", printf("%d", 43))); system("pause"); return 0;... 通过上面程序的运行结果就可以知道printf函数的返回值是被输出值的字符个
    #include <stdio.h>
    #include <stdlib.h>
    int main()
    {
    	printf("%d", printf("%d", printf("%d", 43)));
    	system("pause");
    	return 0;
    }

     大家平时经常使用printf这个输出函数,但是有多少人想过它的返回值是什么?或者想过它有没有返回值!

      通过上面程序的运行结果就可以知道printf函数的返回值是被输出值的字符个数。

      在我们平时的学习应该要知其然更要知其所以然,这样我们才能更好的更深入的学习知识。

    展开全文
  • printf()函数的返回值的总结 1.printf()函数有返回值,它返回打印字符的个数; 2.字符个数注意计算所有的字符数,包括空格和不可见的换行符(\n); 此处用C primer plus第六版中的程序举例; #include <...

    关于C语言 printf()函数的返回值的总结
    1.printf()函数有返回值,它返回打印字符的个数;
    2.字符个数注意计算所有的字符数,包括空格和不可见的换行符(\n);
    此处用C primer plus第六版中的程序举例;

    #include <stdio.h> //第一行
    int main () //第二行
    {	//第三行
    	int bph2o =212;	//第四行
    	int rv ;	//第五行
    	rv = printf("%d F is water's boiling point.\n",bph2o); //第六行
    	printf("The printf() function printed %d characters.\n",//第七行
    	rv); //第八行
    	return 0; //第九行
    } //第十行
    

    该程序的输出结果:在这里插入图片描述
    总结:第一个printf()函数输出结果,printf()函数的作用是输出双引号内的内容,%d输出变量bph2o的值212,\n是换行符,故输出结果:
    212 F is water’s boiling point.
    第二个printf()函数的作用有两个:1.给rv变量赋值 ;2.输出双引号里的内容;因第六行把printf()函数的返回值赋值给了rv变量,因printf()函数返回的值是字符个数,"%d F is water’s boiling point.\n",从%d开始到\n的所有字符数,其中包括空格。因为此时%d输出的是变量bph2o的值212,故%d是3个字符,\n为1个字符,加上空格一共是32个字符数,所以输出结果:
    The printf() function printed 32 characters.

    展开全文
  • printf()函数返回成功打印字符数,包括空格和转义字符(比如‘\n’就属于一个字符),但不包括‘\0'。发生错误时,返回负值(-1)。 scanf()函数返回成功读取项数个数,未成功赋值字段不计算在内。如果未...
    printf()函数返回成功打印的字符数,包括空格和转义字符(比如‘\n’就属于一个字符),但不包括‘\0'。发生错误时,返回负值(-1)。
    scanf()函数返回成功读取的项数的个数,未成功赋值的字段不计算在内。如果未读取到项,则返回0。当读取到”文件结尾“时,返回-1。
    例:
    int n = printf("Hello,World\n");                
     n为12(除过10个字母,还有“,”和“\n”)。

    char *arr = "Hello,W orld";
    int n = printf("%s\n",arr);            
    n也为12(除过10个字母,还有个“,”和空格(W和o中间),末尾的‘\0’不算)。

    int a, b;
    int n = scanf("%d%d", &a,&b);
    printf("%d\n", n);                                      
    如果正确输入,则打印n的值为2。如未正确输入,则打印成功读取到的项数。(比如:输入:78  98  则n为2。输入:78,89  则n为1)

    附加
    int a, b;
    int n = scanf("%d,%d", &a,&b);
    printf("%d\n", n);    
    此时,如果想正确读取,比如读取 1和2,就要输入:1, 2   然后回车,需要在“,”和2中间需要加空白字符(空格,回车,制表符等)。


    int a, b;
    int n = scanf("%d,nihao%d", &a,&b);
    printf("%d\n", n);
    此时,如果想正确读取,比如读取 1和2给a和b,就要输入:1,nihao 2   然后回车,需要在“,nihao”和2中间需要加空白字符(空格,回车,制表符等)。

    所以,为了不自找麻烦,在scanf函数的转换说明中间,不要添加任意字符。

         



    展开全文
  • 关于 floor 函数的返回值 一直以为floor函数的返回值是int,直到今天做题wa了。 有这么一道简单的题,计算面积,输出答案四舍五入为整数。 WA3代码 ↓ printf("%d\n",floor(0.5*ans)); AC代码 ↓ printf("%...
  • printf的返回值就是输出的字符数量 需要注意一点是:返回值是是输出的字符数量,包括数字,字母,标点,空格等(包括\n等)。 关于printf()函数的转换说明及其打印的输出结果如下
  • printf的返回值

    2020-04-04 22:51:24
    初学C语言时用的最多的函数就是printf函数,而printf函数的返回值是被大多数人忽略的,以至于很多应聘者在碰到关于printf返回值的编程时一头雾水。确实很少人会注意到这个,接下来就谈一谈printf返回值的问题。 先看...
  • 有一次在注册皮皮书屋的时候,要求输入的验证码是一段C程序的输出结果,主要是关于printf函数的,源程序如下: #include int main() { int i=43; printf("%d\n",printf("%d",printf("%d",i))); ...
  • C 语言程序中,若对函数类型未加显式说明,则函数的隐含说明类型为() 答案:int 附上一段代码 #include&lt;stdio.h&gt; lls() { int i; i=10; } int main() { printf("%d\n",lls()); ...
  • 这是我写长除法子函数,在返回数组到主函数时,打印返回数组出了问题, 本应该打印63个数,可是打印停不下来,检查好几次后,发现ikk取值范围有问题, --在ikk时,ikk最多到7,正常出8个数,但ikk时,便会...
  • Add等也是自己创建的函数),然后输入两个数字,进行相应功能 问题在于Calc函数这样写话可以显示出结果: <p>void Calc(int(*pf)(int,int)...
  • 1.关于printf()函数的返回值问题,来看一道例题:int main(){ printf("%d\n",printf("0123")); printf("%d\n",printf("sdd")); printf("%d\n",printf("...
  • sprintf(temp,"sqlite3 %s \".dump\" | sqlite3 %s",argv[1],argv[3]);... printf("the string is %s\n",temp);  stat = system(temp);  if(-1 != stat && WIFEXITED(stat) && (WEXITSTATUS(stat) == 0))  
  • 先贴出俩个代码 1#include char *returnStr() { char *p="hello world!"; return p; } int main() { char *str; str=returnStr(); printf("%s\n", str); retur
  • printf("the student with a school number of %6s have a score of %4.2f\n",headl->size,headl->score); headl=headl->next; } while( headl!=NULL ) { free(headl); headl->next=headl; } ...
  • printf函数的压栈顺序是从右到左压栈,我们可以理解为计算的顺序为从左到右。 我们先给出一段代码: #include&amp;amp;amp;amp;lt;stdio。h&amp;amp;amp;amp;gt; int main() { int i=10; int j=10; ...
  • char * my_strlwr(char * str) {  if(str == NULL)  return NULL;...printf("sz_buffer = %s\n", sz_buffer);  return 0; } ![图片](https://img-ask.csdn.net/upload/201708/06/1501991080_858867.jpg)
  • 关于printf的小例子 #include #include #include char *get_a_day(int idx); static const char *msg[]={"sunday","monday","tuesday"}; char *get_a_day(int idx) { static char buf[20]; for(int
  • 我有一个程序是这样: int main() { int *p; int i; int*fun(void); p=fun(); for(i=0;... printf("%d\n",*p); p++; } return 0; }; int* fun(void) { static int st...
  • 看以下例子: #include char *return_str()  {   char *p_str="hello world!"; //指针指向常量区  return p_str;  }  void main()  {   char *pstr;  ... printf("%s\
  • scanf() 函数返会一个整数值, 该值等于scanf() 成功读取项数或者EOF #include <stdio.h> int main(void) { int i,j; int n = scanf("%d %d", &i, &j); printf ("%d", n); return 0; } 若输入...
  • 7. printf的返回值 8. 打印较长字符串的技巧 一. 关于printf格式化输出 printf和scanf被称为输入和输出函数,或者简称为I/O函数,之所以被称为格式化是因为printf可以通过格式字符串以及参数列表来控制计算机中的...
  • 我一直想不明白 在第一次进入循环的时候select的返回值会是什么(假设有连接请求),但是因为rset中只有一个listenfd(监听套接字),那么在下面第二个判断 if (FD_ISSET(sockfd, &rset)) 的时候,sockfd怎么会在rset...
  • 以下为源码,我照着一本C语言教材打的,定义了两个求较小指针函数,但是输出值总是很大数字,而且和赋值无关,请问这是怎么回事? #include "pch.h" #include int main() { int * minp(int *...
  • 先来一段代码: #include int main(int argc, char *argv[]) ... printf("a值:%d\n", a); printf("*p值:%d\n", *p); printf("*p十六进制值:0x%x\n", *p); printf("\n"); print
  • =NULL 被编译器警告说 "compartion between pointer and integer",说明gets()返回值变为int 具体代码如下 ``` #include #define MAX 80 void delspace(char * p1); int main(void){ char str[MAX]; ...
  • 本来我的猜想是:如果没有显式的return时,如果当前函数最后一行是个有返回值的函数时,返回这个函数的返回值,如果是个没有返回值的函数或是个表达式,则返回0,但是下面的代码打破了我的猜想,请问为何?...
  • printf的返回值是输出字符的个数 函数printf是从左往右读取的,然后将先读取到的放入栈底,最后读取到的放入栈顶,处理的时候是从栈顶开始处理的,所以我们看到的结果是从右往左的。

空空如也

空空如也

1 2 3 4 5 ... 10
收藏数 198
精华内容 79
关键字:

关于printf函数的返回值