如题所述
å¯ä»¥ä½¿ç¨scanfæ¥è¾å ¥æ°åï¼å¹¶ç¨å ¶è¿åå¼æ¥å¤æã
å½æ°åï¼scanf
ååï¼int scanf(const char *format,...);
åè½ï¼
ä»æ åè¾å ¥stdin (æ åè¾å ¥è®¾å¤ï¼ä¸è¬æ¯é®ç)ä¸è¯»å 容çéç¨åç¨åºï¼å¯ä»¥ææ ¼å¼(format)è¯»å ¥å¤ä¸ªå符ï¼å¹¶ä¿åå¨å¯¹åºå°åçåéä¸,åéå°åç±åæ°ä¼ å ¥ã
è°ç¨å½¢å¼:
scanf("<æ ¼å¼è¯´æå符串>"ï¼<åéå°å>);
åéå°åè¦æ±ææï¼å¹¶ä¸ä¸æ ¼å¼è¯´æç次åºä¸è´ã
è¿åå¼ï¼
è¿åæåèµå¼çæ°æ®é¡¹æ°ï¼è¯»å°æ件æ«å°¾åºéæ¶åè¿åEOFã
æ以å¦æè¾å ¥çæ¯åæ³çæ°å¼ï¼è¿åå¼å°æ¯è®¾å®çåéå°å个æ°ï¼æ¯å¦
scanf("%d%d",&a,&b);
å¦ææ£ç¡®çè¯è¿åå¼å°æ¯2ã
å¦æè¿åå¼ä¸æ¯åéå°åç个æ°ï¼é£ä¹å°±ä»£è¡¨æéæ³å符è¾åºï¼å³æ说çéæ°åå¼ã
以è¾å ¥intå¼ä¸ºä¾ï¼ä¸é¢è¿ä¸ªç¨åºå®ç°äºä¸ä¸ªæ²¡ä»ä¹ç¨å¤çåè½ï¼ä» ä¾ç解ä¸è¿°æ¹æ³ã
å½æ°å:test
åè½ï¼å¾ªç¯è¯»å ¥æ´æ°ï¼å½è¾å ¥éæ°åå¼æ¶ç»æ循ç¯ã
代ç å®ç°ï¼
#include<stdio.h>void test(void)
{
while(1)
{
int v, ret;
ret = scanf("%d",&v);//æ¯æ¬¡è¾å ¥ä¸ä¸ªæ´åæ°å¼å¹¶åå¨vä¸
if(ret != 1) break;//å¤æè¿åå¼ï¼å¦æé1åéåºå¾ªç¯ã
printf("%d\n", v);//è¾åºè¯»å ¥çvå¼
}
}
strcmp这个函数没学过
追答好像这个函数是比较两个字符串的大小,用在这还不恰当,我看了这个例子,你自己理解着应用:
C语言使用的读入键盘输入的函数较常用的一般有:
scanf
fscanf
sscanf
getchar
gets
scanf、fscanf、sscanf 根据你定义的字符格式来判断是字符串还是纯数字。
例如:
scanf("%d",&a); 使用了格式控制%d就表示输入的十进制整数;
scanf("%",a);控制%s就表示输入的字符串。
详细格式控制符如下:
a 读浮点值(仅适用于 C99)
A 读浮点值(仅适用于 C99)
c 读单字符
d 读十进制整数
i 读十进制、八进制、十六进制整数
e 读浮点数
E 读浮点数
f 读浮点数
F 读浮点数(仅适用于 C99)
g 读浮点数
G 读浮点数
o 读八进制数
s 读字符串
x 读十六进制数
X 读十六进制数
p 读指针值
n 至此已读入值的等价字符数
u 读无符号十进制整数
[ ] 扫描字符集合
% 读 % 符号(百分号)
gets一般直接默认输入的就是字符串,即使你输入一串数字,也会认为你输入的是字符数字;
getchar一般直接默认输入字符。
帮我看看吧!
{
int n,a;
a = scanf("%d", &n);
while (a != 0)
{
printf("n = %d\n", n);
a = scanf("%d", &n);
}
return 0;
}
{
int inum;
while(cin >> inum)
{
...
}
return 0;
}追问
还是不懂
追答int main(){
int inum;
while(scanf("%d", &inum))
{
...
}
return 0;
}
while循环中可以无限输入数字,然后如果输入非数字,循环就结束了
追答我写一下你看看哈
#include <stdio.h>int main(void)
{
int n;
while (scanf("%d", &n))
printf("n = %d\n", n);
return 0;
}
用到scanf(),如果成功读入一个整数,就返回1,否则就返回0
追问还是不行,帮我看看吧
没搞清楚你想做什么呢,你的函数好像有很多问题
追问我想做的是输入一个数字n,然后转换成cel,cel=1.8*n+32.0;利用while循环来输入n,while循环中可以无限输入数字,然后如果输入非数字,循环就结束了.其中那个Temper()是调用函数
追答#include <stdio.h>float temper();
int main(void)
{
float cel;
printf("cel = %f", temper());
return 0;
}
float temper()
{
float a, cel;
printf("Please input a number:");
while (scanf("%f", &a))
cel = 1.8 * a + 32.0;
return cel;
}