QT 创建给定大小的文本

/******************************************************
说明:产生满足大小的数据,成功返回true,失败返回flase
输入:文件名、文件大小
***********************************************************/
bool CreatFile(const char* fileName, unsigned long fileLength);


CreatFile(const char* fileName, unsigned long fileLength)
{
	FILE *pFile = fopen(fileName, "wb+");
	if (pFile == NULL)
	{
		return false;
	}
	fseek(pFile, fileLength - 1, SEEK_SET);
	fputc(EOF, pFile);
	fclose(pFile);
	return true;
}
以上代码产生的文本内并没有内容,只是通过移动指针给定长度达到文本的大小。

如果要加入内容可以如下:

CreatFile(const char* fileName, unsigned long fileLength)
{
 	QFile file(fileName);
 	if (file.open(QFile::WriteOnly | QIODevice::Truncate))
	{
		QTextStream out(&file);
 		for (unsigned long i = 0; i < fileLength; i++)
		{
			srand((unsigned)time(NULL));
			int random = rand() % 10;
 			out << random;
 		}
 	}
 	file.close();
 	return true;
}
但是由于速度太快,导致文本内容总是为最后一次循环产生的内容。

如果有好的链接请告诉我。


发布了48 篇原创文章 · 获赞 12 · 访问量 8万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章