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(格式)给出的格式 ...
随机推荐
- windows下的mongodb下载安装
1.首先从官网https://www.mongodb.org/下载mongodb的安装包,本人下载的是mongoDB3.2版本的.msi的文件,然后双击安装即可 2.点击next 3.compelte ...
- Algorithms 4th - 1.1 Basic Programming Model - CREATIVE PROBLEMS
欢迎交流 1.1.26 public class TestApp { public static void main(String[] args) { int a = StdIn.readInt(); ...
- 浅谈C中的指针和数组(二)
原文转载地址:http://see.xidian.edu.cn/cpp/html/475.html 在原文的基础上增加自己的想法作为修改 很多初学者弄不清指针和数组到底有什么样的关系.我现在就告诉你: ...
- MyEclipse数据库反向生成实体类
MyEclipse数据库反向生成实体类 “计应134(实验班) 凌豪” 当我们在开发项目涉及到的表太多时,一个一个的写JAVA实体类很是费事.然而强大的MyEclipse为我们提供简便的方法:数据库反 ...
- Android TextView文字超出一屏不能显示其它的文字 解决方案
在android上面让TextView 过多的文字实现有滚动条,之前想简单了以为设置TextView的属性就可以实现,结果还是需要ScrollView配合使用,才能达到滚动条的效果有两种方式实现, 一 ...
- NET Core 的 Views
NET Core 十种方式扩展你的 Views 原文地址:http://asp.net-hacker.rocks/2016/02/18/extending-razor-views.html作者:Jür ...
- SQL Server用户自定义类型与统计信息
用户自定义数据类型不支持统计信息! 所以查询对它的查询会慢一些.
- PC/SC
简介 PC/SC规范由微软公司与世界其它著名的智能卡厂商组成的PC/SC工作组提出的.PC/SC规范是一个基于WINDOWS平台的一个标准用户接口(API),提供了一个从个人电脑(Personal C ...
- /dev/null &
java -cp .:ojdbc14.jar com.eucalyptus.dataguard.DBCheck dadifilm slbcheck Aa7788123 > /dev/null & ...
- 使用iscroll插件实现下拉刷新功能
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...