文件指针

Rookiekk 2017-03-08 03:59:34
#include<stdio.h>
#include<stdlib.h>

int main(int argc,char *argv[])
{
char in[10];
FILE *pf1,*pf2;

printf("enter in file:");
if((pf1=fopen("argv[1]","rb"))==NULL)
{
printf("cant open %s",argv[1]);
exit(1);
}
fgets(in,10,pf1);
if((pf2=fopen("argv[2]","wb"))==NULL)
{
printf("cant open %s",argv[2]);
exit(1);
}
fputs(in,pf2);
return 0;
}

文件和可执行程序都放在相应文件夹里了 ,为什么还是打开失败?求大神指点
...全文
128 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2017-03-08
  • 打赏
  • 举报
回复
自信男孩 2017-03-08
  • 打赏
  • 举报
回复

#include<stdio.h>
#include<stdlib.h>
 
int main(int argc,char *argv[])
{
    char in[10];
    FILE *pf1,*pf2;
 
    printf("enter in file:");
    if((pf1=fopen(argv[1],"rb"))==NULL) /*去掉""*/
    {
        printf("cant open %s",argv[1]);
        exit(1);
    }
    fgets(in,10,pf1);
    if((pf2=fopen(argv[2],"wb"))==NULL) /*去掉""*/
    {
        printf("cant open %s",argv[2]);
        exit(1);
    }
    fputs(in,pf2);
    return 0;
}
argv[1]和argv[2]本身就是字符串指针,所以不需要再加双引号,并且,即使不是字符串指针,加了双引号也不会称为字符串。
heronism 2017-03-08
  • 打赏
  • 举报
回复
路径不对,试试用绝对路径
Rookiekk 2017-03-08
  • 打赏
  • 举报
回复
我已经找到错误啦 pf1=fopen("argv[1]","rb") argv[1]不应该用双引号引起来。

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧