-1

我的程序中有一个写入 argv[1] 的 FILE 对象

tabptr = fopen(argv[1],w+)

我需要从同一个文件中读取,但是我将如何创建一个指向 tabptr 的指针,该指针可以从 argv[1] 读取而不是写入?或者我只是在想这个过程。

tabptr = fopen(argv[1],w+)
//tabptr writes to argv[1]...
//time to declare file to read from the same tabptr wrote to
FILE * tabptrStr = tabptr   //how would i make tabptrStr readable?
tabptrStr = fopen(argv[1],"r") //or am i just overthinking this and this will accomplish my goal?

argv[1] 让我感到困惑,我是来自 C++ 的 c 新手

4

2 回答 2

1

你读和写一样FILE*。这是给定的模式fopen,它决定您是否可以读取和/或写入文件。

所以你可以

fread(buf, 17, 1, tabptr);

或者

fwrite(buf, 17, 1, tabptr);

与 tabptr。

argv[1]通常是给程序的参数main()

int main(int argc, char **argv)
{
...
}

在这种情况下,命名您应该用于读取和写入的文件。

于 2012-12-02T23:35:31.310 回答
0

argc是传递给 main 的命令行参数的数量,并且argv是指向这些参数的指针数组(argv[0] 是程序名称)。在您的情况下, argv[1] 是为读/写而打开的文件的名称。

to 的第二个参数fopen表示文件的打开方式,因此您已经打开了文件进行读写,并且tabptr可以用于相同的操作。请注意,w+如果文件已存在,则以模式打开将丢弃文件的内容。

于 2012-12-02T23:51:23.517 回答