c语言中怎么在屏幕上输入文件名然后从此文件中读取内容到屏幕?
6个回答
展开全部
#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;
}
#include<stdio.h>
char wjm[20];
int main(){
scanf("%s",wjm);
freopen(wjm,"r",stdin);
读入并输出
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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;
}
#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就是显示在屏幕上
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
char c[20] = {0};
scanf("%s",c);
fd = open(c,O_RDONLY);
while(1)
{
rc = read(fd,stdout,1);
if (rc <=0)
break;
}
大概是这样
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);
这样应该差不多了。。。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先用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);*/
怎么解决?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询