我有一个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 ++的新手
答案 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+
模式下打开将丢弃文件的内容(如果已存在)。