在C语言中改变流
我想知道如何更改我的程序当前流?在C语言中改变流,c,C,我想知道如何更改我的程序当前流? 我的意思是我想从文件中获取输入。假设您讨论的是由文件*对象stdin和stdout表示的标准C i/O流,您可以使用: 假设您正在讨论由文件*对象stdin和stdout表示的标准C I/O流,您可以使用: 该函数用于更改已打开文件流的分配。它在C89标准C中-虽然链接到POSIX标准。该函数用于更改已打开文件流的分配。它在C89标准C中-虽然链接到POSIX标准。也许您有这样一个程序: #include <stdio> int main(int a
我的意思是我想从文件中获取输入。假设您讨论的是由文件*对象stdin和stdout表示的标准C i/O流,您可以使用:
假设您正在讨论由文件*对象stdin和stdout表示的标准C I/O流,您可以使用:
该函数用于更改已打开文件流的分配。它在C89标准C中-虽然链接到POSIX标准。该函数用于更改已打开文件流的分配。它在C89标准C中-虽然链接到POSIX标准。也许您有这样一个程序:
#include <stdio>
int main(int ac, char **av) {
int i;
if(scanf("%d", &i) == 1)
printf("Answer: %d\n", i);
else
printf("No answer\n");
return 0;
}
相反,请如此调用它
C:\> MYPROG.EXE < INPUTFILE.TXT
请注意,您已打开新的输入文件,并在后续调用中使用生成的句柄。还要注意,您必须使用稍微不同的调用来读取指定句柄,而不是
stdin
。例如,您必须使用fscanf
而不是scanf
,getc
而不是getchar
,fgets
而不是gets
也许您有这样一个程序:
#include <stdio>
int main(int ac, char **av) {
int i;
if(scanf("%d", &i) == 1)
printf("Answer: %d\n", i);
else
printf("No answer\n");
return 0;
}
相反,请如此调用它
C:\> MYPROG.EXE < INPUTFILE.TXT
请注意,您已打开新的输入文件,并在后续调用中使用生成的句柄。还要注意,您必须使用稍微不同的调用来读取指定句柄,而不是
stdin
。例如,您必须使用fscanf
而不是scanf
,getc
而不是getchar
,以及fgets
而不是gets
您所说的“stream'-stdio/out/err”是什么意思?或者其他什么?请提供更多关于您尝试做什么的详细信息。这个问题太模糊,无法回答,可能会被关闭。什么是“stream”-stdio/out/err?或者其他什么?请提供更多关于您尝试做什么的详细信息。这个问题太模糊,无法回答,很可能会被关闭。我同意你的想法,但我这样做了(为了将一个文件复制到另一个文件),但我什么也没遇到,不过我的朋友编写的程序和我的一样,而且运行得很好。@amin:编辑这个问题,以包含一些你尝试过但不起作用的代码,如果您希望得到帮助,找出它不工作的确切原因。“rt”
模式“read turbo”?:-)我同意你的想法,但我这样做了(为了将一个文件复制到另一个文件),但我什么也没有面对,不过我的朋友写的程序和我的一样,而且运行得很好。@amin:如果你想帮我弄清楚为什么它不工作,请编辑这个问题,把你尝试过的一些代码包括进去。“rt”
模式“read turbo”?:-)
#include <stdio>
int main(int ac, char **av) {
FILE *input;
int i;
input = fopen("INPUTFILE.TXT", "r");
if(!input) {
printf("No input file\n");
return 1;
}
if(fscanf(input, "%d", &i) == 1)
printf("Answer: %d\n", i);
else
printf("No answer\n");
return 0;
}