c语言中怎么在屏幕上输入文件名然后从此文件中读取内容到屏幕?

 我来答
头子赴3
2015-05-31 · TA获得超过3102个赞
知道小有建树答主
回答量:1592
采纳率:25%
帮助的人:478万
展开全部
#include <stdio.h>#include <string.h>void   main(){    int    n;    double x,y,z;/* 如果需要保存每次数据,可以用数组 */        FILE   *fp;        char   filename[100];        char  str[1000];printf("\nEnter a filepath/filename:\n");        gets(filename);    fp=fopen(filename, "rt");        if(fp==NULL)        {              printf("cannot open file\n");              return;        }        while (fgets(str,1000,fp))  //读取一行,并判断文件是否结束        {        sscanf(str,"%d,%lf,%lf,%lf\n",&n,&x,&y,&z);        printf("%d,%e,%e,%e\n",n,x,y,z);      }       fclose(fp);}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2019-10-07
展开全部
很简单啊。
#include<stdio.h>
char wjm[20];
int main(){
scanf("%s",wjm);
freopen(wjm,"r",stdin);
读入并输出

return 0;

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友1fc36d4
2011-11-11 · TA获得超过3128个赞
知道大有可为答主
回答量:1497
采纳率:100%
帮助的人:1820万
展开全部
#include <stdio.h>
#include <stdlib.h>

int main()
{
FILE *fp;
char name[50];
char line[256];

printf("Please input file name:\n");
scanf("%s",name);
if ((fp = fopen(name, "r")) == NULL)
{
printf("Open file %s failed.\n",name);
system("pause");
return 0;
}

while (1)
{
if(fgets(line,256,fp)==NULL) break;
printf("%s",line);
}
fclose(fp);

system("pause");
return 0;
}
更多追问追答
追问
后边的while循环什么意思?
追答
读文件里面的内容啊

fgets()可以一行行读出来,返回NULL的时候就是到文件尾或异常了,这时候退出循环,结束文件读取。

printf就是显示在屏幕上
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ddlange
推荐于2016-08-22 · 超过22用户采纳过TA的回答
知道答主
回答量:72
采纳率:0%
帮助的人:66.6万
展开全部
char c[20] = {0};
scanf("%s",c);
fd = open(c,O_RDONLY);
while(1)
{
rc = read(fd,stdout,1);
if (rc <=0)
break;
}
大概是这样
更多追问追答
追问
要求带后缀名的
追答
你可以自己输入  比如你输入的时候2.txt  或者2.c  都可以  这样自由  最后要关闭文件 close(fd);
char a;
int i;
char c[20] = {0};
scanf("%s",c);
fd = open(c,O_RDONLY);
i = 0;
while(1)
{
rc = read(fd,a,1);
if (rc <=0)
break;
buff【i】 = a;
i++;
}
write(1,buff,strlen(buff));
close(fd);

这样应该差不多了。。。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
rdwerf
2011-11-11 · TA获得超过691个赞
知道小有建树答主
回答量:6236
采纳率:0%
帮助的人:583万
展开全部
先用SCAN,在用printf
追问
如FILE *fp;
char filename[20];
scanf("%s",&filename);
freopen( "filename.txt", "r", stdin );

/*if((fp=fopen("filename.txt","r+"))==NULL)
{
printf("\t无法打开此文件\n");
system("pause");
return;
}
printf("----------------------------------------------------------------------\n");
fclose(fp);*/
怎么解决?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式