为什么赢了';这个程序不能与C中的OS重定向命令一起工作吗?

为什么赢了';这个程序不能与C中的OS重定向命令一起工作吗?,c,console,text-files,io-redirection,C,Console,Text Files,Io Redirection,我正在使用命令提示功能和一个简单的程序来生成C语言的文本文件。以下是程序: #include <stdio.h> int main(void) { char buf[80]; fgets(buf, 30, stdin); printf("the input was %s\n", buf); return 0; } 现在,这将在桌面上生成一个文件“programname.txt”,但它是空的。这本书声称配方应该允许我输入一个字符串(正如程序设计的那

我正在使用命令提示功能和一个简单的程序来生成C语言的文本文件。以下是程序:

#include <stdio.h>

int main(void)
{
    char buf[80];

    fgets(buf, 30, stdin);
    printf("the input was %s\n", buf);
    return 0;
}

现在,这将在桌面上生成一个文件“programname.txt”,但它是空的。这本书声称配方应该允许我输入一个字符串(正如程序设计的那样),并且该字符串将位于生成的programname.txt文件中。此外,命令行中还有一条警告:“不能识别为内部或外部命令”。我以前有过这个schpill,但是文本文件生成确实有效,因为它确实生成了.txt文件。要使此程序按预期工作,我这里缺少什么?

在shell中执行输出重定向的常用方法是使用
>filename
,但与您所说的相反,不要在其前面使用
重定向。在
>
之前的是要重定向的命令

因此,假设您编译了程序并将其保存为当前目录中的
foo
(例如
cc-o foo myprogram.c
)。在这种情况下,您可以通过以下方式重定向其输出:

./foo > filename.txt

您似乎被这样一个事实弄糊涂了:它不是您的程序,而是创建文件
programname.txt
的shell,甚至在它试图运行您的程序之前


在第一个成功并创建了一个空文件之后,后一个可能会失败,因为路径中没有命令
重定向
,或者像已经建议的那样,shell中存在一个内置的东西。

听起来好像您没有运行程序。我非常怀疑
重定向
是否在您的道路上。尝试
/redirect>programname.txt
./foo > filename.txt