Whatsmyname
Whatsmyname
采纳率100%
2017-02-27 13:53 阅读 4.1k

C++程序什么形式才算是“输入是stdin、输出是stdout”?

请教大家一个问题:一段C++程序,接口怎么做才能满足“输入是stdin、输出是stdout”?
1. 是说这段程序的输入是 cin>>形式的、输出是cout<<形式的键盘terminal读写吗?
2. 还是说输入是ifstream in()形式的、输入是ofstream out()形式的文件呢?
3. 还是说应该是stringstream这种东西呢?

……再多问一句:如果stdin/stdout真的是cin/cout的话,能否用 cin>>x>>y 这种方式读入两个char x[]+char y[]字符串或者string x+string y字符串呢?

谢谢了先!

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

3条回答 默认 最新

  • 已采纳
    a29562268 坤昱 2017-02-28 00:33

    c++ cout与cin 输出与输入的都是char类型数据组成的一个整串,内部采用序列化方式,无论输入的是int还是char都会以char整串的形式输出,我空间有printf实现可以参考下。

    点赞 1 评论 复制链接分享
  • caozhy 从今以后生命中的每一秒都属于我爱的人 2017-02-27 15:38

    看操作系统是否对输入输出重定向,默认是键盘和终端作为输入和输出。也就是谁是stdin/out不需要程序考虑,是操作系统考虑的。

    点赞 2 评论 复制链接分享
  • Whatsmyname Whatsmyname 2017-03-04 14:19

    再请教一下:如果我的程序会连续收到 cin>> 这个形式的输入,那么什么情况下让程序终止运行?

    比方说:我写一个算命软件。不过现在想算命的人很多,一个接一个的来 cin 输入他们的生辰八字。每输入一个,我的程序就自动cout算命结果。那么什么情况下应该让我程序终止运行呢?

    目前我用的是空回车,不过感觉这样也不太好,因为空回车应该是没有输入、程序待命的样子……

    while(1)
            {
            cout << "\nPlease enter the command, or just use blank 'Enter' to stop." << endl;
            string command;
            getline(std::cin, command);
            if (command == "") return 0;
    
    点赞 评论 复制链接分享

相关推荐