while与scanf–循环读取用户输入直到遇到特定终止条件

1.while(scanf(“%d”,n),n)

读到0时停止程序 。

如果是要求两个变量同时等于0,则使用与运算即可

while(scanf("%d,%d",&m,&n),m&&n)

2.while(scanf(“%d”,&n)!=EOF)与while(~scanf(“%d”,&n))

功能:读到文件末尾时终止循环(对字母无效)

3.while(scanf(“%d”,&n)==1)

功能:赋值失败,跳出循环

这个应该很好理解了吧,如果是scanf(“%d%d”,&n,&m)就是while(scanf(“%d %d”,&a,&b)==2)

原文地址https://blog.csdn.net/qq_29989211/article/details/102471398

原文备份

算法题目中经常会用到几个while语句,能够同时输入和判断,比较好用

1、while(scanf(“%d”,&n),n)
功能:当n为0时中止循环

这里要先说一下逗号表达式:逗号表达式的值是逗号后面的那个数。例如x=(5,6),则x=6。

括号里的语句其实就是个逗号表达式,它的返回值是n的值,所以这个语句就相当于while(n),n=0时跳出循环,写成这样是为## 标题了输入。

如果是while(scanf(“%d%d”,&n,&m,),n,m),那么就相当于while(m)。

2、while(scanf(“%d”,&n)!=EOF)和while(~scanf(“%d”,&n))
功能:当读到文件结尾时中止循环

scanf语句的返回值为成功赋值的个数,例如scanf(“%d %d”,&a,&b),如果a、b均赋值成功返回值为2,只是a赋值成功返回1,a、b都不成功返回0,出错的时候返回EOF。

~是按位取反,scanf语句如果没有输入值就是返回-1,按位取反结果为0。

注意:这两种方法在输入字母的时候会变成死循环,而scanf(“%d %d”,&a,&b)==2不会。windows下可通过按“Ctrl +Z”、linux下可通过“Ctrl + D”来来达到“输入”文件结束符的效果,结束循环。

3、while(scanf(“%d”,&n)==1)
功能:赋值失败,跳出循环

这个应该很好理解了吧,如果是scanf(“%d%d”,&n,&m)就是while(scanf(“%d %d”,&a,&b)==2)

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇