我是一名初学程序员,正在开发一个项目,需要我的代码从输入文件中读取字符,在不更改原始文件的情况下操作它们,然后将修改后的版本打印到输出文件中。要做到这一点,我需要在程序的某个时刻使用fopen()
函数,但我很好奇:这里到底发生了什么?输入文件的内容是否已复制到变量input1
?
#include <stdio.h>
int main(int argc, char *argv[])
{
FILE *input1;
input1 = fopen(argv[1], "r");
return 0;
}
答案 0 :(得分:4)
input
的返回值是一个文件句柄,它类似于稍后可以用来与文件交互的标记。您可以将fopen()
传递给input1
或fgets()
等功能,具体取决于您下次要对文件执行的操作。
文件的内容不会被fread()
。
答案 1 :(得分:1)
fopen函数打开文件文件名的I / O流,并返回指向流的指针。 所以,在你的陈述中:
input1 = fopen(argv[1], "r");
fopen()打开文件argv [1]进行读取,函数返回的地址分配给input1.This不涉及复制文件内容。
然后,您可以使用文件指针从文件中读取数据。例如:
char c = getc(input1);
答案 2 :(得分:-1)
在此处阅读文件处理API。