printf与scanf的返回值、注意点
- printf()的返回值为其输出字符串常量的字符数(注意字符数与字数的区别)注意计数针对所有的打印字符,包括空格和不可见的换行字符(不包括字符串的空字符)。
- scanf()函数返回成功读入的项目的个数。即在下面程序中scanf的返回值为1。如果没有读取任何项目(如它期望一个数字但是出入了一个非数字字符),它会返回值0。当它检测到“文件结尾”时,它返回EOF(EOF是文件stdio.h中定义的特殊值。一般,#define 指令把EOF 的值定义为 -1)。 int n;
n= scanf("%f",&p);
printf("%d,%f",n,p);
printf()函数的*修饰符(*滞后赋值,例:%*d)
scanf("%d", &width);
printf("The number is: %*d:\n", width, num);
printf("Enter a width and a precision:\n");
scanf("%d %d", &width, &precision);
printf("Weight = %*.*f\n", width, precision, weight);
7
The number is: 256:
Enter a width and a precision:
3 7
Weight = 123.4500000
scanf()函数的*修饰符
scanf("%d%*d%d",&i,&j);
printf("%d,%d\n",i,j);
i=2,j=5
通过while循环把上面 i 输入后的多的垃圾字符跳过
如果没有while循环,在调试时输入 i = 123asdfg
在Vc++6.0中的输出结果为:
123asdfg
i = 123
j = -858993460
*/
int scan1,scan2;
char ch;
scanf("%d", &scan1);
printf("scan1= %d\n", scan1);
while ( (ch=getchar()) != '\n')
continue;
scanf("%d", &scan2);
printf("scan2 = %d\n", scan2);
float n1 = 3.0;
double n2 = 3.0;
long n3 = 2000000000;
long n4 = 1234567890;
该调用告诉计算机把变量n1、n2、n3、n4的值传递给计算机,计算机把它们放置到被称为堆栈(stack)的一块内存区域中来实现。计算机根据变量的类型而非转换说明符把这些值放到堆栈中。所以,n1 在堆栈中占用8个字节(float 被转换成 double)。同样,n2 也占用8个字节,而n3 和n4 则分别占用4个字节。然后控制转移到 printf()函数。该函数从堆栈把值读出来,但是在读出时,它根据转换说明符去读。 %ld 说明符指出, printf() 应该读取4个字节,所以 printf()在堆栈中读取前4个字节作为它的第一个值。这就是n1的前半部分,它被解释成一个长整数。下一个 %ld说明符再读取4个字节,这就是n1 的后半部分,它被解释成第二个长整数。同样,%ld 的第三个和第四个实例使得 n2 的前半部分和后半部分被读出,并被解释成2个长整数。
printf与scanf的返回值、注意点的更多相关文章
- C语言scanf函数返回值小记
scanf scanf是C标准库stdio里面定义的用于获取用户输入的函数,具体的介绍可以在CppReference上看到.scanf的返回值是已经成功赋值的变量个数,也就是说在 scanf(&quo ...
- 关于scanf的返回值
今天写一个小程序时误用while(scanf("%d",&b)!=a),以为scanf的返回值就是输入的值. 其实真相是: scanf返回接收到的变量值的个数. int a ...
- C语言scanf的返回值
#include <stdio.h> int main(void) { long num; long sum = 0L; int status; printf("Please e ...
- scanf的返回值
参考这个博客,https://blog.csdn.net/sinat_40936062/article/details/84348021 #include<stdio.h> int mai ...
- scanf printf函数返回值
1. scanf 函数是有返回值的,它的返回值可以分成三种情况 1) 正整数,表示正确输入参数的个数.例如执行 scanf("%d %d", &a, &b); ...
- c语言scanf返回值
1. scanf 函数是有返回值的,它的返回值可以分成三种情况 1) 正整数,表示正确输入参数的个数.例如执行 scanf("%d %d", &a, &b); 如果 ...
- scanf返回值问题
在家养病,闲着没事看C primer plus,看到书中对于scanf输入的判断,常用如下方法: 此时它将返回1视为我输入成功,如果不为1则视为输入失败.那到底scanf的返回值具体指的是什么呢? 例 ...
- 关于scanf函数的返回值问题
如: scanf("%d%d",&a,&b); 1.如果a和b都被成功读入,则scanf的返回值为2 2.如果只有a被成功读入,那么返回值为1 3.如果a和b都未被 ...
- 浅析C语言中printf(),sprintf(),scanf(),sscanf()的用法和区别
printf语法: #include <stdio.h>int printf( const char *format, ... ); printf()函数根据format(格式)给出的格式 ...
随机推荐
- CSS Unicode 编码
CSS 中文字体 Unicode 编码表 在 CSS 中设置字体名称,直接写中文是可以的.但是在文件编码(GB2312.UTF-8 等)不匹配时会产生乱码的错误. 为此,在 CSS 直接使用 Unic ...
- 第10课_dg
export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1 export ORACLE ...
- 记录下url拼接的多条件筛选js
本着为提高工作效率百度或者google这些代码发现拿过来的都不好用,然后自己写了个,写的一般但记录下以后再优化 <html> <head> <script> $(f ...
- JVM学习之常见溢出类型
Java堆 所有对象的实例分配都在Java堆上分配内存,堆大小由-Xmx和-Xms来调节,sample如下所示: public class HeapOOM { static class OOMObje ...
- 使用fastcgi_cache加速网站
为了提高网站的性能缓存是一把利器,nginx中可以配置fastcig_cache来缓存不需要实时获取的数据实现动静分离,nginx.conf配置如下: http { - fastcgi ...
- PHP中计算时间差(上周,上月,去年,昨天等)
运用了date()和strtotime()函数,直接上代码 echo date('Y-m-d' , strtotime('-1 day')).PHP_EOL; echo date('Y-m-d' , ...
- libwebsocket manual
Name: libwebsocket_cancel_service - Cancel servicing of pending websocket activity Synopsis: void li ...
- android DatePickerDialog theme
网上搜索了下没有找到DatePickerDialog的各种 Theme 的样例.我就一个一个试了下,传上图片 DatePickerDiaolog有两个构造函数分别是: DatePickerDialog ...
- SAR 图像
http://www.dlr.de/hr/en/desktopdefault.aspx/tabid-2326/3776_read-5679/
- 不显示BOM清单的版本
应用 Oracle Bill Of Materiel 层 Level Function 函数名 Funcgtion Name BOM_BOMFDBOM 表单名 Form Name BOMFDBOM ...