为什么赢了';这个程序不能与C中的OS重定向命令一起工作吗?
我正在使用命令提示功能和一个简单的程序来生成C语言的文本文件。以下是程序:为什么赢了';这个程序不能与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”,但它是空的。这本书声称配方应该允许我输入一个字符串(正如程序设计的那
#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