C++语言关于while语句的具体讲解    Help me,please!

原问题:C++语言关于while语句的具体讲解    Help me,please!
分类:编程开发 > 最后更新时间:【2017-07-28 10:16:23】
问题补充:

最佳答案

noi.openjudge.cn上的题吧,

    st是一个你定义的字符数组;

    “==1”相当于为真“==true”也可以直接省略(在这道题中不可行)(如果想判断不为真的话可以写作“==0”或“==false”或省略掉并在前面加一个“!”例:判断a是否为假,可以用“!a”来表示(全为英文字符))(这句while语句的意思是当一直在读入时(或说文件未结束时));

    你这个程序如果出现两个空格之间的字符大于200就失败了;

给你个我的程序

#include<bits/stdc++.h>

using namespace std;

int main()

{

//freopen(".in","r",stdin);

//freopen(".out","w",stdout);

string s;

while(cin>>s)

cout<<s<<' ';

//fclose(stdin);

//fclose(stdout);

return 0;

}

(手动测试时可以用Ctrl+Z来终止文件,显示为^Z)

追答:
详解:你的程序中的第一句是定义,上文提到了while(scanf("%s",&st)==1);有多个用途读入部分(scanf("%s",&st))的意思是读入字符串,读到空格停止(空格自动忽略)并存到st中;while是一直循环,直到条件不成立为止(0,false,否……都为不成立;非零,-∞到∞之间,除了零,都为真(成立,true))在此程序中指输入文件未结束(!EOF)下一行,printf("%s ",st);是指以输出st,st是%s类的(字符数组类)(上一行读入的),以“%s ”的格式输出(意思为输出st+空格)。后面的和头文件等就不多说了
追问:
你能给我你的联系方式吗?我才刚刚入门 是个学生,你能帮我吗?
追问:
对 就是noi上的题 我做练习的网站还一个叫OJ 的 追答:
qq2923925664,有qq邮箱或邮箱W.x.jian@outlook.com有可能等好久才回哦告诉我你填的验证信息我才会同意

  • 追问:
    那没事的,我已经加了,验证信息是 360问答用户 谢谢了
    最佳答案由网友  2015wxj  提供
  • 公告: 为响应国家净网行动,部分内容已经删除,感谢网友理解。
    18

    分享到:

    其他回答

    其它网友回答:
    1.scanf是有返回值的,,返回值为读取成功的个数  

    其它网友回答:
    2.st看做字符串

    其它网友回答:
    3.,while循环读取成功一个之后输出,读取失败直接结束程序。

    其它网友回答:
    st是C语言数组变量的定义,也算是较基础的语法(教材上有详细介绍的)

    其它网友回答:
    while是循环,条件是scanf返回1(也就是正常输入,直到出错或EOF)

    其它网友回答:
    而因为scanf本身接收数据时,以空格为间隔,且会忽略其它空格的,所以正好用来完成题目要求

    其它网友回答:
    而循环中,输出收到的字串并在每个串后面加一个空格

    其它网友回答:
    程序是入门级的,所以建议你先从教材学习下基础的理论

    其它网友回答:


    追问:
    你能告诉我你的联系方式吗?
    追问:
    我是刚刚初升高的学生,现在暑假在学习计算机;
    追问:
    你能帮助我吗?
    追答:
    我以前也跟与你相同的学生说过,初中学习编程没有什么意义的(他说是可以加分的) 有精力不如放在基础课的学习上,完全可以比编程有更高的进步 只有两种人,个人推荐在初中学习编程,一是有天赋的,二是有极端兴趣的
    追问:
    我是已经算是高中生了,现在的大学都有自主招生,只要在奥赛中获得一等奖,就可以获得名牌大学自主招生的名额,我们现在学习计算机,就是为了奥赛打基础,也是为了以后高考打基础。
    追问:
    只是现在的时间有点紧,老师飞一般的上课,而我又是刚刚接触计算机,很难一下子接受,所以需要帮助
      推荐