请教一个txt文件名命名报错问题

百一不只 2014-08-08 12:22:11
自己做的一个小练习题,批量创建txt文本文件,其中自定义文件名和创建的文件个数,代码如下:
#include<iostream>
#include<fstream>
int main()
{
using namespace std;

char theRestoryDirectory[40]="C:\\USers\\gongxinyu\\Desktop\\test\\"; //设置存储路径
char theHeader[10]; //设置需要创建的文件名
cout << "Enter the filename:";
cin >> theHeader;
while(strlen(theHeader)>10) //文件名长度不超过10
{
cout << "The filename is too long!(max is 10 numbers.)" << endl;
cout << "Enter the filename again:";
cin >> theHeader;
}
char theExtension[10]=".txt"; //命名后缀为.txt
char name[100];
int num; //设置需要创建的文件数量
cout << "Enter the quality of documents:";
cin >> num;

ofstream outFile;

for(int i=1;i<=num;i++)
{
sprintf(name,"%s%s%d%s",theRestoryDirectory,theHeader,i,theExtension);
outFile.open(name);

outFile << "<" << theHeader << i << ">" << " contains " << i << " tips:\n" << endl;
for(int j=1;j<=i;j++)
{
outFile << "This is the " << j << " tip of " << theHeader << i << endl;
}
outFile.close();
}
return 0;
}


这段代码也可以实现正常功能,能正常的创建指定文件名和数量的文件(运行的时候先在桌面上创建一个test文件夹,然后不同的电脑在存储路径哪里要改一下)。
但如果我第一次输入的文件名长度大于10的时候,代码会提示错误并返回重新输入(while循环哪块),第二次输入的长度在10以内,虽然也可以正常创建文件,但是编译会报错,截图如下,请教高手是什么问题??
...全文
108 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
百一不只 2014-08-08
  • 打赏
  • 举报
回复

报错截图。注:虽然报错,但是正常创建了文件.....
赵4老师 2014-08-08
  • 打赏
  • 举报
回复
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处。
vcf_reader 2014-08-08
  • 打赏
  • 举报
回复
这个不是编译错误,是运行错误

64,701

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧