为您找到"
C语言中scanf(“%s”,m);m前面为什么不用加&??
"相关结果约100,000,000个
&为取地址运算符.从本质上来说, scanf是通过参数, 将值传递给主调函数.所以必须传指针作为参数.&取地址,将整型变量i转为int *型, 传给scanf.scanf在该指针指向区域赋值,实现对i赋值的效果.
前三个都没问题 第4个改成scanf("%c",&str[1][1]);就OK了 字符串都是存在字符数组中的 数组名代表数组的首地址 所以不用加取地址符号
对于scanf中的 (如%*s d)表示跳过这个字段(假如存在)。相对前面括号中的,则是跳过一个单词 跳过一个整形数 那么,scanf("%d%*s%d",&a,&b);就是说:读取一个整型数,放到a里;忽略中间输入的任何串(假如存在);读取另一个整型数,放到b里。
在键盘上应该这样输入:3 7Aa 这里主要看三点:1)scanf函数使用空格(换行、制表符)来决定怎样将输入划分几个字段;(这是最基本的)2)格式符%d在遇到非数字符号和+/-号时停止该数字读取;3)对于%c,即使下一个字符是空白字符,它也会读取那个字符;...
scanf的输入不能包含空格,可以通过fgets或者getline来读取一行来处理。
C语言中scanf是标准库函数,主要用来接收用户输入的数据。C标准函数库是所有符合标准的头文件的集合,以及常用的函数库实现程序,例如I/O输入输出和字符串控制。不像这三种COBOL、Fortran和PL/I等编程语言,在C语言的工作任务里不会包含嵌入的关键字,所以几乎所有的C语言程序都是由标准函数库的函数来创建...
真正原因在于,scanf的内部处理方法的问题。执行完scanf("%d%d",&a,&b);后的回车没被取出,下一个scanf继续识别。结果ch中被放入回车。你可以输入1 2n回车,结果就退出了。把scanf("%c",&ch);改为scanf("c",&ch);。在%c前加了个空格,消耗掉上个的回车。或者换成ch=getch();不过要加上...
在这句之前加一句getchar();,因为回车换行符被读取给C了,加上这句之后换行符就被取出来了,然后你就可以接着输入值给C了。。。
应该是这样吧 scanf("%d",&a[i][j]);意思是,从键盘输入一个整形数存放到a[i][j]的地址,&就代表着取地址的意思。这个是一个固定的表达方式,可以牢记。希望对你有帮助。
你好!对于scanf中的 (如%*s d)表示跳过这个字段(假如存在)。相对前面括号中的,则是跳过一个单词 跳过一个整形数 那么,scanf("%d%*s%d",&a,&b);就是说:读取一个整型数,放到a里;忽略中间输入的任何串(假如存在);读取另一个整型数,放到b里。仅代表个人观点,不喜勿喷,谢谢。