c语言scanf

c语言scanf

平台用户的互动中精选与c语言scanf相关的:1、C语言输入时,scanf("%d",&a); 中 “&” 是什么意思? 2、C语言中scanf到底是怎样的功能??? 3、c语言中scanf有什么作用? 4、c语言中scanf("%d%*c", &n);是什么意思 5、C语言中的Scanf的用法 6、c语言scanf中*的用法 7、C语言while(scanf("%x",a+i++)) 8、c语言中scanf("%d",a)和scanf(%d",&a)在printf("%d",a)中到底有什么区别 9、求c语言中各个语句如int,float,scanf的用法和区别? 10、c语言scanf的用法
c语言scanf
平台用户 2018-06-06 16:50:37

下面是精选平台用户互动时的最佳讨论

gr459933
gr459933


gr459933:C语言输入时,scanf("%d",&a); 中 “&” 是什么意思?

下面的解答已被8026人点赞
取指,即取得a的地址。

scanf要求,其后的变量为指针类型。

你这里一定定义了int a;

如果直接定义的是指针,就不用加&
最后一次编辑时间 推荐于2017-09-30 16:13:47
无月神明
无月神明


无月神明:C语言中scanf到底是怎样的功能???

scanf ("%d",&i); 1,我没有设置回车结束,但似乎它默认回车结束输入 2,我输入88,然后空格,再输入99,结果printf是88. 99没了?它内部是怎样的处理规则? 3,我先空格空格,再输入88. 结果成功输出。它似乎又能绕过空格?? 它到底是按照... scanf ("%d",&i);
1,我没有设置回车结束,但似乎它默认回车结束输入

2,我输入88,然后空格,再输入99,结果printf是88. 99没了?它内部是怎样的处理规则?

3,我先空格空格,再输入88. 结果成功输出。它似乎又能绕过空格??

它到底是按照怎样的顺序规则进行操作的?
下面的解答已被5476人点赞
scanf ("%d",&i);
它能跳过非打印字符如空格、Tab、回车符,只能读取一个整数。所以99就未被读取(可以留待下一次读取)。
最后一次编辑时间 推荐于2017-08-29 19:53:28
蒋介石猪
蒋介石猪


蒋介石猪:c语言中scanf有什么作用?

下面的解答已被7781人点赞

C语言中scanf是标准库函数,主要用来接收用户输入的数据。


函数格式:int scanf(char *format, args, ...);

功       能:从标准输入设备按format指定格式输入数据给args所指向的内存单元

返  回 值 :读入并赋给args的数据个数。遇文件结束返回EOF,出错返回0


举例如下:

int a;
scanf("%d", &a);  // 按%d的格式(即整型的格式),将用户输入的数据赋值给&a指向的内存单元(即变量a所在的内存单元)。
// 简单理解就是将用户输入的数转换为int类型并赋值给变量a

最后一次编辑时间 推荐于2017-09-10 20:59:35
匿名
匿名


匿名:c语言中scanf("%d%*c", &n);是什么意思

急急急~!
下面的解答已被4964人点赞
格式字符串的一般形式为:
%[*][输入数据宽度][长度]类型
其中有方括号[]的项为任选项

“*”符:用以表示该输入项,读入后不赋予相应的变量,即跳过该输入值。
如:
scanf("%d %*d %d",&a,&b);
当输入为:1 2 3时,把1赋予a,2被跳过,3赋予b。

%*c作用时读取输入流中数字后的一个字符,并丢弃,使得后面的输入函数不能读到那个字符

跳过一个字符

举个例子
#include "stdio.h"
int main(){
int a, b;
scanf("%d%*c%d", &a, &b);
printf("%d %d\n", a, b);
return 0;
}
你输入1n2,那么scanf把1读取赋给变量a,如果跳过一个char(这里是 ‘n’)接着读取2赋给变量b
最后一次编辑时间 推荐于2017-09-03 21:36:23
dengtao250
dengtao250


dengtao250:C语言中的Scanf的用法

#include <stdio.h> int main() { int a, b, c; scanf("%d,%d", &a, &b); c = a + b; /*计算a+b*/ printf("%d + %d = %d", a, b, c); return 0; } 此函数scanf中为什么要去 a b的地址符号 可不可以不取地址符号 谢谢 scanf到... #include <stdio.h>

int main()

{

int a, b, c;

scanf("%d,%d", &a, &b);

c = a + b; /*计算a+b*/

printf("%d + %d = %d", a, b, c);

return 0;

}
此函数scanf中为什么要去 a b的地址符号 可不可以不取地址符号 谢谢 scanf到底有什么特别之处呢
下面的解答已被2246人点赞

首先需要#include <stdio.h>int scanf( const char *format, ... );scanf()函数是格式化输入函数,它从标准输入设备(键盘) 读取输入的信息。 

第一个参数format为一个常量字符串,这个字符串中如果包含‘%’符号则使用后续参数进行匹配
如:scanf("%d%d", &a, &b);

1.转换字符(就是%后跟的部分)   a 读浮点值(仅适用于 C99), A 读浮点值(仅适用于 C99),   c 读单字符,d 读十进制整数,  i 读十进制、八进制、十六进制整数 。  

2.附加格式说明字符表修饰符说明:L/l 长度修饰符 输入"长"数据,   h 长度修饰符 输入"短"数据,   W 整型常数 指定输入数据所占宽度,表示本输入项在读入后不赋值给相应的变量。

最后一次编辑时间 2018-05-10
傻傻_Smile
傻傻_Smile


傻傻_Smile:c语言scanf中*的用法

#include<stdio.h> int main(void) { int n; printf("please enter three integers: \n"); scanf("%*d %*d %d*,&n); printf("the last integer was %d\n",n); return 0; } F:\CC\c5.cpp(6) : error C2001: newline in constant F:\CC\c5.cpp(7) : e... #include<stdio.h>
int main(void)
{
int n;
printf("please enter three integers: \n");
scanf("%*d %*d %d*,&n);
printf("the last integer was %d\n",n);
return 0;
}
F:\CC\c5.cpp(6) : error C2001: newline in constant
F:\CC\c5.cpp(7) : error C2146: syntax error : missing ')' before identifier 'printf'
按书上的例子来的,不知道错在哪
下面的解答已被4249人点赞
只要输入一个参数,改成scanf("%d", &n);就可以了
最后一次编辑时间 推荐于2018-04-13 20:20:36
飘飘渺渺梦逍遥
飘飘渺渺梦逍遥


飘飘渺渺梦逍遥:C语言while(scanf("%x",a+i++))

求解while(scanf("%x",a+i++))这个代码怎么计算的
下面的解答已被6432人点赞
这必须结合前文才能解释的啊。
int a[100],i=0;
while(scanf("%x",a+i++));
这是以16进制形式,从键盘读取数据到a数组中。第一个数读到a[0]中,第二个数读到a[1]中,……,直到输入CTRL+D回车时结束。
最后一次编辑时间 推荐于2017-10-18 08:38:41
地中海的风暴
地中海的风暴


地中海的风暴:c语言中scanf("%d",a)和scanf(%d",&a)在printf("%d",a)中到底有什么区别

下面的解答已被7534人点赞
&是取地址的意思 &a 是取出变量a的地址
scanf(%d",&a) 就是读取1个数字 写入a的地址

scanf("%d",a) 是读取1个数字 写入地址a 这个a如果是100 就写到地址100 如果是200 就写到地址200 显然 这很危险 万一a的存储的值刚刚好是一些指令的地址什么的 会写到这个地址修改指令 就运行不下去了 出大错

printf("%d",a) 就没什么了 把变量a的存储的值输出
然后 &是取地址 所以你可以
printf("%d",&a) 这样是输出a的地址
最后一次编辑时间 推荐于2018-02-26 12:58:42
lewlew055
lewlew055


lewlew055:求c语言中各个语句如int,float,scanf的用法和区别?

下面的解答已被6432人点赞
int 是定义整形的数据
float是定义单精度实数(想当于是小数)
scanf就是输入函数,用来接收键盘输入的数字或者字符
用法嘛,就是 int a=23;
float b=5.63;
scanf("%d%f",&a,&b);
这里scanf函数,会把接收的a和b赋予到a和b
相当于是实现了电脑和人之间的一个交换
了解?
最后一次编辑时间 推荐于2017-09-29 23:57:35
日A无语了
日A无语了


日A无语了:c语言scanf的用法

下面的解答已被910人点赞
首先需要#include <stdio.h>
int scanf( const char *format, ... );
scanf()函数是格式化输入函数,它从标准输入设备(键盘) 读取输入的信息。
第一个参数format为一个常量字符串,这个字符串中如果包含‘%’符号则使用后续参数进行匹配
如:scanf("%d%d", &a, &b);

格式说明符
  转换字符(就是%后跟的部分)
  a 读浮点值(仅适用于 C99)
  A 读浮点值(仅适用于 C99)
  c 读单字符
  d 读十进制整数
  i 读十进制、八进制、十六进制整数
  e 读浮点数
  E 读浮点数
  f 读浮点数
  F 读浮点数(仅适用于 C99)
  g 读浮点数
  G 读浮点数
  o 读八进制数
  s 读字符串
  x 读十六进制数
  X 读十六进制数
  p 读指针值
  n 至此已读入值的等价字符数
  u 读无符号十进制整数
  [ ] 扫描字符集合
  % 读 % 符号(百分号)
  附加格式说明字符表修饰符说明
  L/l 长度修饰符 输入"长"数据
  h 长度修饰符 输入"短"数据
  W 整型常数 指定输入数据所占宽度
  * 表示本输入项在读入后不赋值给相应的变量

参考资料: http://baike.baidu.com/view/1390039.htm

最后一次编辑时间 推荐于2017-10-13 23:54:43