首页 > 编程 > C++ > 正文

c++打开文件,以及搜索文件名二进制打开文件

2019-11-08 00:59:46
字体:
来源:转载
供稿:网友
普通打开文件方法//打开文件void OpenFile() { ifstream fin("Vincent.txt"); string s;//文件保存成字符串存在s中 string line;//文件每一行缓存 while (getline(fin, line))//按行读取数据 { //cout << "Read from file: " << line << endl; s = s + line; } cout << "Read from file: " << s << endl;}输入输出流二进制打开文件ifstream in;//ifstream是从硬盘到内存ofstream out;//ofstream是从内存到硬盘//建立输入输出流void SetFiles(int argc, char*argv[]) {//argc为命令行中的参数,argv[i]是指向第i个参数的指针 char OutputFile[50], InputFile[50]; //文件名是否提供 //提供了文件名 if (argc >= 2)//第二个参数argv[1]是文件名 strcpy_s(InputFile, argv[1]);//复制 //注意strcpy_s中多了第二个参数,限制复制字符串的长度,避免越界 //没有提供文件名,则提示用户输入 else { cout << "请输入文件名(无需扩展名)" << endl; cin >> InputFile; } //文件名不应有扩展名 if (strchr(InputFile, '.')) {//extern char *strchr(const char *s,char c);查找字符串s中首次出现字符c的位置。用extern修饰的全局变量 cerr << "文件名不可包含扩展名啊!" << endl; exit(1);//非正常退出 } //else // cout << "恭喜,成功打开啦~" << endl; //以二进制方式打开文件 strcat_s(InputFile, ".txt"); in.open(InputFile, ios::binary);//void open(const char* filename,int mode,int access);文件名,方式,属性 if (in.fail()) { cerr << "有毒啊!无法打开" << InputFile<< endl; exit(1);//非正常退出 strcpy_s(OutputFile, InputFile); //注意strcpy_s中多了第二个参数,限制复制字符串的长度,避免越界。 strcat_s(OutputFile, ".lyc");//将两个char类型连接。 //strcat_s比strcat更安全 out.open(OutputFile, ios::binary); }}

加油啦~


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选