c程序打开指定目录中的指定文件

c程序打开指定目录中的指定文件

目录和文件名采用参数的方式引入

要求:输入指定文件名,打开文件:
思路:将文件的路径和文件名用数组获取保存,拼接得到最终的文件路径。
代码如下:

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int main(){
	FILE *fp;          //定义文件指针 
	char filename[50];//定义一个文件名数组保存文件名 
	char path[]="E:\\test_c\\1\\";//标明文件所在的路径 
	char path1[]={0};//存储最终的文件读取路径 
	printf("请输入您要查看的文件的名字:\n");
	scanf("%s",filename);
	sprintf(path1,"%s%s",path,filename);//拼接path+filename,形成最终的文件路径 
	printf("文件路径为:%s",path1);
	fp=fopen(path1,"r");//打开文件 
    
    if(fp==NULL)//判断打开的文件是否为空,空则报错 
    {
        printf("can't open source file");
        exit(0);
    }
    else
    {
        char ch=fgetc(fp);
        while(ch!=EOF)//EOF和NULL都是在stdio.h中带的,直接用就行 
        {
            putchar(ch);
            ch=fgetc(fp);//fgetc读取一个字符并返回,同时将读指针向前移动一个字节 
        }
        fclose(fp);//关闭文件,每次文件操作完后记得关闭,否则会在下一次文件操作时产生乱码等问题 
    }
    return 0;
} 

输入目录名和文件名:

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int main(){
	FILE *fp;          //定义文件指针 
	char filename[50];//定义一个文件名数组保存文件名 
	char path[100];//标明文件所在的路径 
	char path1[]={0};//存储最终的文件读取路径 
	
	
	//增加的地方
	printf("请输入路径名:\n");
	scanf("%s",path);
	printf("请输入您要查看的文件的名字:\n");
	scanf("%s",filename);
	sprintf(path1,"%s%s",path,filename);//拼接path+filename,形成最终的文件路径 
	printf("文件路径为:%s\n",path1);
	fp=fopen(path1,"r");//打开文件 
    
    if(fp==NULL)//判断打开的文件是否为空,空则报错 
    {
        printf("can't open source file");
        exit(0);
    }
    else
    {
    	printf("文件内容为:\n");
        char ch=fgetc(fp);
        while(ch!=EOF)//EOF和NULL都是在stdio.h中带的,直接用就行 
        {
            putchar(ch);
            ch=fgetc(fp);//fgetc读取一个字符并返回,同时将读指针向前移动一个字节 
        }
        fclose(fp);//关闭文件,每次文件操作完后记得关闭,否则会在下一次文件操作时产生乱码等问题 
    }
    return 0;
} 

路径设置:
在这里插入图片描述
运行结果:
在这里插入图片描述

  • 6
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用 Qt 自带的 QFileDialog 类来打开文件对话框,然后使用 QAxObject 类来操作 Excel 文件。下面是一个示例代码: ```cpp #include <QApplication> #include <QFileDialog> #include <QAxObject> int main(int argc, char *argv[]) { QApplication a(argc, argv); // 打开文件对话框,选择 Excel 文件 QString fileName = QFileDialog::getOpenFileName(nullptr, "Open Excel File", "", "Excel Files (*.xls *.xlsx)"); // 如果未选择文件,直接退出 if (fileName.isEmpty()) { return 0; } // 创建 Excel 应用程序对象 QAxObject excel("Excel.Application"); // 设置 Excel 应用程序的显示状态为不可见 excel.setProperty("Visible", false); // 打开指定的 Excel 文件 QAxObject *workbooks = excel.querySubObject("Workbooks"); QAxObject *workbook = workbooks->querySubObject("Open(const QString&)", fileName); // 获取 Excel 文件的所有工作表 QAxObject *worksheets = workbook->querySubObject("Worksheets"); int count = worksheets->property("Count").toInt(); // 循环遍历每个工作表,并输出其名称 for (int i = 1; i <= count; i++) { QAxObject *worksheet = worksheets->querySubObject("Item(int)", i); QString name = worksheet->property("Name").toString(); qDebug() << "Worksheet Name: " << name; } // 关闭 Excel 文件并退出 Excel 应用程序 workbook->dynamicCall("Close()"); excel.dynamicCall("Quit()"); return a.exec(); } ``` 需要注意的是,使用 QAxObject 类需要在项目添加 `QT += axcontainer`。另外,在使用完 QAxObject 对象后,必须手动释放内存,例如使用 `delete` 关键字。 此外,上面的示例代码只是演示如何获取 Excel 文件的工作表名称,如果需要读取或者修改 Excel 文件的内容,需要使用 QAxObject 提供的其他方法和属性,具体可以参考 Qt 官方文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值