批处理文件扩展名
来源:互联网 发布:网络艺名大全男 编辑:程序博客网 时间:2024/09/21 08:16
需求:
起源于我使用markdown时,保存没有选择markdown格式。累积多次了之后觉得不好看,于是打算改成批处理格式可是一个一个就很难受,于是百度了下,然后感觉百度的东西,用它的批处理不足以显示程序员的逼格,于是就自己动手写了一段代码。
处理前的文件:
处理后的文件:
代码
#include<io.h>#include<string>#include<iostream>#include<exception>using namespace std;int main(){ try{ char *filepath = "C:\\Users\\hujing\\Desktop\\md"; intptr_t hFile; size_t n;//无符号整型 string p,t; struct _finddata_t fileinfo; //_findfirst失败返回-1 if((hFile = _findfirst(p.assign(filepath).append("\\*").c_str(),&fileinfo)) != -1){ do{ if(!(fileinfo.attrib & _A_SUBDIR)){ p.assign(filepath).append("\\").append(fileinfo.name); cout<<p<<endl; if(p.find('.md') == string::npos){//nops size_t的最大可能值,表示没有匹配 t.assign(filepath).append("\\").append(fileinfo.name).append(".md"); rename(p.c_str(),t.c_str()); cout<<t<<endl; } } }while(_findnext(hFile,&fileinfo) == 0); _findclose(hFile); } }catch(std::exception &e){ cout<<e.what()<<endl; }}
遇到的问题
gcc 不能捕获exception异常的解决
c++标准 try, catch, throw是C++标准里的语法,标准只要求try catch捕获throw出来的异常,并不要求捕获系统异常(如被0除,段错误,CPU异常等)。从C++层面来说,不要期望try, catch能捕获系统异常。
GCC所实现的C++异常处理框架中,它的catch(…)语法,并不能捕获系统异常。因此,这给C++中异常处理的良好运用打了大大的折扣;不同类型的系统异常等。所以Linux操作系统上的gcc编译的程序中,它只能捕获程序中,曾经被自己显式地throw出来的异常,而对于系统异常,catch block是毫无办法的。_findnext调用失败
64bitwindows系统,使用intptr_t hFile
instead oflong
2.1 使用int时也可以使用intptr_t来保证平台的通用性,它在不同的平台上编译时长度不同,但都是标准的平台长度,比如64位机器它的长度就是8字节,32位机器它的长度是4字节,定义如下:
#if __WORDSIZE == 64typedef long int intptr_t;#elsetypedef int intptr_t;#endif
2.2
long
64位平台8个字节32位平台4字节error C2110: “+”: 不能添加两个指针
“char” :字符串常量是指针类型
参考
- windows 下用命令行编译和运行c/c++
- C/C++获取文件后缀名并且比较
- C++中修改文件夹名以及文件名
- C++异常处理
- gcc不能捕获系统异常
- _findnext Api 64bit下崩溃
- 语言编程需要注意的64位和32机器的区别
- 关于int、short int、long int、long long 的区别
- 尝试用+添加两个指针
阅读全文
0 0
- 批处理文件扩展名
- 批处理文件
- 批处理文件
- 批处理文件
- 批处理文件
- 批处理文件
- 批处理文件
- 批处理文件
- 批处理文件
- 批处理文件
- 批处理文件
- 批处理文件
- 批处理文件
- 批处理文件
- 批处理文件
- 批处理文件
- 批处理文件
- 批处理文件
- GPS数据模拟
- 自定义view
- switch
- java 函数
- opencv3.0中一个窗口显示多个图像
- 批处理文件扩展名
- scikit-learn 中文文档- 神经网络模型-无监督学习|ApacheCN
- 深入理解dubbo之服务引用
- MATLAB数字图像处理(一)局部直方图均衡化
- Gson的使用
- java 中国大学MOOk第四周题目
- 51Nod 1067 Bash游戏 V2 找规律
- Tensorflow深度学习笔记(四)-利用神经网络预测非线性回归示例
- 深度学习求导