【发布时间】:2014-08-16 14:04:31
【问题描述】:
代码(main.cpp)(C++):
#include <string>
#include <sstream>
#include <stdio.h>
#include <stdlib.h>
#include <ctime>
//general vars
std::ofstream ofs;
std::ifstream ifs;
std::stringstream ss;
//spamFiles vars
std::string defPath;
int defAmt;
void spamFiles(std::string paramPath);
int main(int argc, const char * argv[])
{
srand(time_t(NULL));
std::cout << "Enter the amount of files: ";
std::cin >> ::defAmt;
std::cout << "Now enter the target path: ";
std::cin >> ::defPath;
::spamFiles(::defPath);
std::cout << defAmt << " files were created." << std::endl;
return 0;
}
void spamFiles (std::string paramPath){
//system("open -a Terminal .");
for(int i = 0; i < ::defAmt; i++){
std::string tempS;
int ranNum = rand() % 501;
ss << ranNum;
std::string ssResult = ss.str();
std::string finalPath = ::defPath + ssResult + ".txt";
ifs.open(finalPath);
if(ifs.good()){
finalPath += "dupe.txt";
while(ifs.good()){
finalPath += "dupe.txt";
ifs.open(finalPath);
}
}
ofs.open(finalPath);
ofs << "";
ofs.close();
ss.str(std::string());
}
return;
}
我的问题如下。
每当我运行并输入时,假设数量为 53,最终它永远不会创建完整数量的文件。它总是按比例缩放的。
这是一个例子。
定义的 Amont:300 -> 我得到的:240
定义数量:20 -> 我得到的:15
定义数量:600 -> 我得到的:450
提前致谢。
【问题讨论】:
-
证明它正在发生。重现问题不需要这些文件内容。用
std::cout或其他东西进行演示。即写一个TESTCASE