while(scanf("%s",s)==1)什么意思

while(scanf("%s",s)==1)
{
。。。。。。。
}
解释一下while括号里的事什么意思,如果改成C++怎么改

scanf()函数返回的是此函数读取到的参数个数。
所以,当scanf("%s",s)正常读取到一个字符串时(不论串的长短如何),scanf()函数的值总是1。只有当它没有读到时(比如,遇到了文件结束、遇到了^Z),就返回读到的参数个数0。
while(scanf("%s",s)==1)就是说当未读到结束时就循环。键盘上以CTRL+Z(^Z)表示结束。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-04-07
while(scanf("%s",s)==1) 表示当成功读入一个字符串信息时,循环 1表示读入一个有效的数据

改成c++可以如下:
while ( cin >> s ) 想结束循环,可以输入ctrl+z
{
}追问

我想让按回车键后结束输入 请问我改成下面那个行吗
while ( cin >> s &&s)
{
}

追答

不可以 你这句表示 输入有效,且s不是0,但s永远不会是0
可参考如下

char s[100];
while ( cin.getline(s,sizeof(s)) && s[0] )
{
}

本回答被网友采纳
第2个回答  2014-04-07
当有输入且输入为字符串的时候执行循环。
c++改成
while(cin>>s)
{
......
}本回答被提问者采纳
第3个回答  2014-04-07
这里是指你输入的是一个有效字符。这里可以改成:
while(scanf("%s",s)!=EOF)追问

怎么改成C++ d的形式 ?

追答

不着,我还没学C++,不过你可以直接拷贝过去试试。没准儿是通用的。

相似回答