注册 登录
编程论坛 C++教室

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

FollowDream 发布于 2017-02-27 21:57, 4298 次点击
请教大家一个问题:一段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字符串呢?

谢谢了先!
4 回复
#2
rjsp2017-02-28 08:41
从控制台输入输出都是 stderr、stdin、stdout 之一,cin\cout\cerr\clog只是它们的一个封装。

能否用 cin>>x>>y 这种方式读入两个char x[]+char y[]字符串或者string x+string y字符串呢?
--- 当然能力,听不懂你想问什么。
#3
Erlosshex2017-02-28 15:00
stdin、stdout是标准的读入流和输出流,就是程序默认的读入流和输出流,cin>>和cout<<都是向默认的读入流和输出流进行数据传输,所以stdin和stdout可以绑定terminal、自定义的流,一般不更改的话是系统默认的terminal
#4
FollowDream2017-03-04 22:07
回复 2楼 rjsp
谢谢
#5
FollowDream2017-03-04 22:13
回复 3楼 Erlosshex
再请教一下:如果我的程序会连续收到 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;


1