永发信息网

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

答案:5  悬赏:60  手机版
解决时间 2021-11-08 01:19
c语言中怎么在屏幕上输入文件名然后从此文件中读取内容到屏幕?
最佳答案
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);

这样应该差不多了。。。追问,O_RDONLY什么意思?fd是什么?怎么定义?rc又是什么怎么用?追答O_RDONLY以只读形式打开,fd是文件描述符 rc是read的返回值 read出错返回-1,没读到东西返回0, 后面white第一个参数1是代表标准输出你也可以用printf(“%s\n”,buff);追问void Display_yyg(Person per[],int n)
{
char (fd);
FILE *fp;
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;
char buff[i] = a;
i++;
}
write(1,buff,strlen(buff));
fclose(fd);

system("pause"); 这样对吗?是不是需要声明啊?追答你把这个函数放在main前面就不需要声明!
void Display_yyg(Person per[],int n)
{
int fd;
char a,buff[1024];
int i;
char c[20] = {0};
scanf("%s",c);//c本来就是地址
fd = open(c,O_RDONLY);
i = 0;
while(1)
{
rc = read(fd,a,1);
if (rc <=0)
break;
char buff[i] = a;
i++;
}
write(1,buff,strlen(buff));
fclose(fd);
}加下头文件应该差不多了追问什么文件头啊?#include
#include
#include这三个可以吗?
全部回答
要用到指针?追问恩,似的
先用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);*/
怎么解决?
#include #include void   main(){    int    n;    double x,y,z;        FILE   *fp;        char   filename[100];        char  str[1000];printf(" Enter a filepath/filename: ");        gets(filename);    fp=fopen(filename, "rt");        if(fp==NULL)        {              printf("cannot open file ");              return;        }        while (fgets(str,1000,fp))  //读取一行,并判断文件是否结束        {        sscanf(str,"%d,%lf,%lf,%lf ",&n,&x,&y,&z);        printf("%d,%e,%e,%e ",n,x,y,z);      }       fclose(fp);}
#include
#include

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就是显示在屏幕上追问非常谢谢!追答没事
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
斯格猪是哪国家的品种
孕三十八周 今天早上开始胎动不明显了 正常吗
纹身还要摸?小哥忍不住了怎么办
利安人寿与中国人寿的区别
奥德冠立休音箱2.1功是多大功率
求此图片来自哪一部电影,据说是欲望酒店
碳5氢12氧的同分异构体及命名
皇帝制度的推翻是溥仪的过错还是时局本应如此
应对土地资源危机的措施?
网上买衣服如何选择尺寸?
男生不喜欢一个人却愿意跟她聊天是否还有机会
学习现代汉语是一种怎样的体验
一个朋友发的 可惜生活不是电影 生活比电影难
情侣网名带丽和闫字的
天津抗震纪念碑怎么样
推荐资讯
做橡胶(或塑料)的警示锥形筒(桶),需要什
原来信耶稣的人良心最毒!谁还会相信什么耶稣
接触佛法立马真学佛真干真信,念佛往生,这样
哪个早点油条或油饼好吃
天竺草是什么
有没有关于类似《狐王魅妃》或者类似《魅上魔
4.3×0.44+1.4×0.22简便运算
EDIUS中往AV轨上添加了数个视频素材后再往A轨
斗门井岸韦创力现在普工的工资达多少一个月
毛茸茸的书包变黄
台湾有什么东西放在衣柜里会有香味
联想G405加了内存条怎么设置双通道
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?