我是代码块的新手,我似乎无法使用<的命令行参数。输入>输出。有谁知道怎么做?
我现在能够读取从argv [1]传递的文件但是,程序不会自动读取给定文件的输入,也不会将输出正确输出到文件输出。
我知道它在set程序的参数上,我的参数行是:list.txt<输入>输出
经过一番研究后,我看到一个人这样做:< ./input> ./output,好像在运行一个程序给出输入和输出,反正我也尝试过无济于事。我是否需要使用文件处理程序与之交互?它没有结果,简单的getchar()应该从传递的输入文件中读取。
我在这里缺少什么?
提前致谢
答案 0 :(得分:7)
我在CB 13.12
中找到了一种方法Tools -> Configure Tools -> Add:
Name: whatever
Executable: C:\Windows\System32\cmd.exe
Parameters: /C ${TARGET_OUTPUT_BASENAME} exampleArg1 <inputFileRedirect.txt
Working Directory: ${TARGET_OUTPUT_DIR}
它基本启动Windows控制台并将参数传递给它。 您还可以为这些工具指定键盘快捷键。 我能看到的唯一缺点是这些工具不是特定于项目的。
答案 1 :(得分:5)
我一直在使用Code :: Blocks已经有一段时间了,最近才注意到至少与Windows中的Code :: Blocks 12.11相同。重定向&gt; 和&lt; 在项目 - &gt;中不起作用设置程序参数......
一个hackish解决方案是在构建后步骤中执行。
右键点击project name -> Build options... -> Pre/post build steps -> Post-build steps:
cmd /C cd /D "bin\$(TARGET_NAME)\" & YourApplicationNameHere.exe >output.txt 2>errors.txt
并选中“始终执行”复选框,即使目标是最新的。 现在点击 Ctrl + F9 ,程序将作为构建过程的最后一步执行。
答案 2 :(得分:1)
我认为smime_object = SMIME.load_pkcs7('file.pem')
的问题是在 IDE 中启动您的程序。 cb_console_runner.exe
无法解释重定向符号。所以,我在代码块13.12的原始代码中添加了一些代码。
请将链接文件复制到[cb文件夹]。 (不要忘记备份原件。)
二进制文件: http://limity.tistory.com/attachment/cfile30.uf@241A8D485621595131B28F.exe
源代码: http://limity.tistory.com/attachment/cfile23.uf@231AF3485621595232A632.cpp
答案 3 :(得分:1)
通过在项目菜单中设置程序参数,我能够将输入重定向到我的c程序。
导航到Top Menu>Project>Set programs' arguments
并将</absolute/path/to/yourinputfile
通知<
置于启动状态,将代码块强制重定向到重定向文件而不是传递参数。
答案 4 :(得分:1)
我知道这是一个古老的话题,但没有一个解决方案足够好。对于Windows,我可能会在全局范围内使用以下宏定义(因为您可能还需要它用于调试打印或类似)
#include <cstdio>
#ifdef DEBUG
#define D(X) X
#else
#define D(X)
#endif
然后作为第一行或第二行(如果你需要std :: ios :: sync_with_stdio(false);)主要用它作为
int main() {
D(freopen("input.txt","r",stdin);)
D(freopen("ouput.txt","w",stdout);)
...
在项目&gt;下的Code :: Blocks中定义构建选项...&gt; (调试,编译器设置,#define)
DEBUG
期待&#34; input.txt&#34;是.c或.cpp文件的其余部分所在的文件夹中的文本输入文件,&#34; output.txt&#34;将是在同一文件夹中生成的输出文件(或者它们可以作为此类文件添加到项目中,以便于编辑/查看)。
此解决方案适用于cin / cout和scanf / printf。
答案 5 :(得分:0)
我尝试了几乎所有选项&amp;没能成功:P 在厌倦了这一切之后,我基本上使用文件处理来完成我的工作(phew)
这是我在代码中所做的事情
在全球范围内,我写道:
#define DEBUG
#ifdef DEBUG
#include<fstream>
ifstream Inputfile;
ofstream Outputfile;
#define cin Inputfile
#define cout Outputfile
#endif //#ifdef DEBUG
&安培;在主要方面,我在做其他事情之前写了以下内容:
int main(){
#ifdef DEBUG
Inputfile.open("Input.txt");
Outputfile.open("Output.txt");;
#endif // #ifdef DEBUG
最后在关闭主要流程之前就这样做了:
#ifdef DEBUG
Inputfile.close();
Outputfile.close();
#endif // #ifdef DEBUG
此后添加了两个文件
Input.txt
&安培;
output.txt的
到项目
这按预期工作