c++ 创建的文件大小问题
作者&投稿:蒯面 (若有异议请与网页底部的电邮联系)
#include#include#include#includeusing namespace std;long int getLen(ifstream &fs);void main(){string fpath="tmp1.log";string fpath1="tmp2.log";ofstream os("tmp1.log",ios::app);ifstream is("tmp1.log");char * logContent="this is a log file";long int restBytes = 10*1024-getLen(is);//剩余字节数while(restBytes > (int)strlen(logContent))//这里简化了大小的计算{os (int) strlen(logContent)){os<<logContent<<endl;restBytes-=1+strlen(logContent);}os.flush();os.close();is.close(); }//获取文件的字节数long int getLen(ifstream &fs){fs.seekg(0,ios::end);long int len =fs.tellg();return len;}这里仅仅是做个演示,你可以将其写成循环的形式
我的c++项目文件夹很小啊 只有源代码
1、楼主的程序不能减少每个文件占用的空间。2、每个文件占用的空间取决于文件系统的类型。比如:NTFS文件系统划分文件簇的大小为4KB,而FAT32文件系统则为16KB。也就是说,虽然文件的实际大小小于4KB或16KB,但是在该文件系统下仍旧占用4KB或16KB空间。
3、如果楼主使用的操作系统中文件系统为NTFS,那么可以使用该文件系统的一项功能:压缩驱动器或文件夹。此项内容出现在驱动器的属性对话框中或文件夹的“属性+高级”对话框中。
没有办法,除非你重新格式化分区时指定“分配单元大小”。
景滢小儿: 正常,在编写小的短的程序C没有汇编有优势,一个程序很简单的程序用TC编译成30K正常 你可以这样理解 编译 就跟模板似的,有固定的开头结尾,中间是你的程序编译的代码,开头结尾最简单也要几K,所以再加上你的程序不可能很短 你是用的TC 而不是用的VC++ 没有动态库与静态库的问题, 但是如果改变些TC编译选项可能对编译结果大小有影响
长垣县19490148857: c++编译的文件为什么比C大? - ?
景滢小儿: 不一定,C++生成的程序本来就要比C要大一些的,因为C++里有类,基本的操作都是用类来完成的,而类中是要有一些C中没有的功能(虽然可能没有用)
长垣县19490148857: 为什么VC++生成的DLL文件那么大,怎样才能变小 - ?
景滢小儿: 1.debug版带有调试信息,所以很大,如果是release版会小很多.2.项目属性,如果是静态连接运行时库的就比较大,如果是动态连接运行时库的(在共享 DLL 中使用 MFC)就比较小3.WIN32 dll比较小,且使用不同的运行时库的化,生成的dll文件大小也有差别.(工程属性-》C/C++-》代码生成-》运行时库).使用不同的运行时库,有微软的、STD的有单线程多线程.
长垣县19490148857: C++文件大小问题. - ?
景滢小儿: 单纯的C++文件和C语言的文件大小都是差不多的,因为它们都是文本文件.但是IDE为了帮助开发者更好的编写代码,会自动生成一些辅助性的文件.以Visual Studio 10为例,在工程目录会有sdf文件和一个i...
长垣县19490148857: 用visualStudio2012写C++,在创建的一个文件里不停“编译”和“开始执行不调试”.结果文件变大.怎么办 - ?
景滢小儿: 应该不会一直增大的吧.一开始变的很大是正常的,因为VS2012里面有关于数据库的文件,这个文件就是几十M呢.CPP文件不可能变大的,变大的话就不是代码的问题了.
长垣县19490148857: C++ 流文件最大能写多大? - ?
景滢小儿: 用的TC吧?那是栈溢出了 --- 没注意你说是结构... 结构的话超过10个字节就算Windows环境也得溢出了.栈就是分配给每个线程用来存放函数使用的局部数据的内存,默认只有1M.如果不是主攻程序,最好还是使用Java或者脚本之类比较简单的开发环境.
长垣县19490148857: visual c++新建的项目文件好像挺大的,编写个小的画图程序就要54M了,后面要编写其他程序岂不很恐怖,求解 - ?
景滢小儿: 确实visual c++生成的整个项目确实很大,因为visual c++是一企业级的开发软件,里面包含很多与项目相关的信息,虽然我感觉可能用不到,但是对真正开发项目,特别是一些大型项目这些信息有时候是很关键的
长垣县19490148857: VC++生成的.exe文件怎么这么大? - ?
景滢小儿: 因为你用的是debug调试模式 想发布你的成品请用Release模式 右键单击工具栏窗口 Build 勾上你就会看到 Win32 Debug 下拉会看到 Win32 Release
长垣县19490148857: c++里如何创建一个指定大小的文件 - ?
景滢小儿: HANDLE hFile=CreateFile(TEXT("text.txt"),GENERIC_READ | GENERIC_WRITE,0,NULL,CREATE_NEW,FILE_ATTRIBUTE_NORMAL,NULL); if(hFile==INVALID_HANDLE_VALUE) { MessageBox(TEXT("创建文件失败!")); return; } ...
长垣县19490148857: c语言如何获得文件的创建时间以及文件的大小?(头文件及所用的函数,最好有用法举例) - ?
景滢小儿: windows编程的话,可以用windows的api,如 泠月冰辰 所说. 否则,要看具体平台,提供的类似功能的接口了.