【问题标题】:Online C++ compiler with input stream? [closed]带有输入流的在线 C++ 编译器? [关闭]
【发布时间】:2014-06-17 19:27:41
【问题描述】:

我有点喜欢codepad online editor (supports C++),但我想使用一些scanfs,这在键盘上是不可能的。

是否有一些支持输入流的在线 C++ 编译器?这可能吗?

【问题讨论】:

  • 对键盘的快速测试表明它似乎可以很好地支持输入和输出(字符串)流(参见:codepad.org/YstAFSu5
  • @Chad:不知怎的,你错过了它说“但我想使用一些scanfs”的部分
  • 我对此有“hackish”半开玩笑的解决方案。事实证明,有一个输入文件,您可以在一定程度上依赖它并且可以完全控制...
  • @sehe: 不错,有点像逆奎因。
  • cpp.sh 支持scanf()

标签: c++ compiler-construction codepad


【解决方案1】:

IDEOne支持传入输入;您可以在<textarea> 中指定它。

【讨论】:

  • @Xeo:可以在编译后指定替代输入并再次运行(编译后)。也许您只是想说它不是终端仿真(交互式)(但这不是问题所在)
  • @sehe:嗯,是的,这就是我的意思。运行代码后,我往往会忘记底部的那个小输入窗口。
【解决方案2】:

[ 免责声明:我更喜欢 ideone.com(也支持 c++0x) ]

变得非常迂腐,你可以通过玩这个肮脏的把戏来把你的输入塞进源文件中:

http://codepad.org/fjtHRgof

/* just skip the first two (!!!) lines when reading from t.cpp
602.030024387
423.927317911
520.43881927
131.655014874
35.7455352247
548.735653436
714.556123804
876.948673754
379.105540406
885.096900058
192.734103705
116.365922766
363.998415895
216.268387112
958.684513705

*/ // end of fake input

#include <iostream>
#include <fstream>

using namespace std;

int main()
{
    std::ifstream ifs("t.cpp");
    std::cout << ifs.rdbuf() << std::flush;
}

【讨论】:

  • 我们如何将其扩展到其他编程语言?我想知道这样的事情是否适用于 c。
  • @nikhil,只使用 C 特定的文件 IO? fopen() 等?
【解决方案3】:

Rextester 也有一个输入框,而且界面比ideone 更好用,我一直觉得很笨重。

Coliru 允许您使用multiple files,因此您可以使用您的数据创建一个文件并执行以下操作来输入您的程序:

g++ -std=c++11 -W -Wall main.cpp && cat /Archive/{{id}}/main.cpp | a.out

请注意,LWS 也有一个不错的界面和一个输入框,但已经处于read-only 模式有一段时间了,目前还不清楚它是否会很快恢复在线。

【讨论】:

    【解决方案4】:

    你可以试试http://optimizedbits.com。在那里,您还可以通过提供自己的多个输入流来编译代码。

    对于一个输入流,只需写入输入。对于多个输入测试用例,请遵循:

    input1
    <TESTCASE>
    input2
    <TESTCASE>
    ....
    

    关于输入流的可能性:看到没有人自己构建编译器。每个人都在后端使用一些标准,例如 gcc。所有在线编译器网站都围绕一个涉及以下流程的架构工作(例如:C++):

    1) read_code_user
    2) Save it as variablename.cpp
    3) Use a queuing framework. Then execute g++ variablename.cpp. Further, various libraries are utilized which can pipe stdin, stdout and stderr. 
    

    【讨论】:

      【解决方案5】:

      试试http://compileonline.com/ 在 STDIN 中输入您的输入

      【讨论】:

        猜你喜欢
        • 2011-09-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-17
        相关资源
        最近更新 更多