c语言从命令行读入字符串

我要控制程序操作2个文件,test1.in和test2.in,现在用命令行的方式,命令行会问filename1:输入:test1.in,filename2:输入test2... 我要控制程序操作2个文件,test1.in 和 test2.in,现在用命令行的方式,命令行会问filename1:输入:test1.in,filename2:输入test2.in,问题是在main函数里怎么写?我写的是
char* file;
scanf("%s",&file);
没有报错,但运行时爆机,不知怎么改谢谢!
如果按一楼说的分配空间改完后在代码
FILE * f = fopen(file,"r");中会报错:
error C2664: 'fopen' : cannot convert parameter 1 from 'char *[100]' to 'const char *'
不知能否同时解决下
展开
 我来答
CNnumen911
推荐于2017-09-28 · TA获得超过1133个赞
知道小有建树答主
回答量:401
采纳率:100%
帮助的人:676万
展开全部
char* file;
scanf("%s",&file);

当然会出问题了, 还没有给指针file分配内存就使用了, 所以会出问题的。。。

改成这样:

char file[100];
scanf("%s",&file);

或者(需要加头文件#include <malloc.h>:
char* file = (char*)malloc(100);
scanf("%s",file);
35947457wxl
2010-03-16 · TA获得超过422个赞
知道小有建树答主
回答量:353
采纳率:0%
帮助的人:342万
展开全部
第一个错误就是你定义的FILE是一个指针,并没有空间,是没法接受字符串的输入的,第二个错误是,假设你的指针有空间了,接受输入的时候也不能用&符号
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bigshuye
2010-03-16 · TA获得超过2320个赞
知道大有可为答主
回答量:5658
采纳率:0%
帮助的人:4522万
展开全部
char file[100];
scanf("%s",file);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式