从用于写入的FILE副本将数据读入数组

时间:2012-12-02 23:24:56

标签: c file argv

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

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 ++的新手

2 个答案:

答案 0 :(得分:1)

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

所以你可以

fread(buf, 17, 1, tabptr);

fwrite(buf, 17, 1, tabptr);

使用tabptr。

argv[1]通常是main()

中给予该计划的参数
int main(int argc, char **argv)
{
...
}

并在这种情况下命名您应该用于读写的文件。

答案 1 :(得分:0)

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

fopen的第二个参数表示文件打开模式,因此您已经为读取和写入打开了文件,tabptr可以用于相同的文件。请注意,在w+模式下打开将丢弃文件的内容(如果已存在)。