【发布时间】:2011-12-15 07:29:46
【问题描述】:
这是我当前的问题:我正在尝试用 C++ 创建一个 x MB 的文件。用户将输入文件名,然后输入一个介于 5 和 10 之间的数字来表示他们想要创建的文件的大小。稍后在这个项目中,我会用它做其他事情,但我被困在创建该死的东西的第一步。
我的问题代码(到目前为止):
char empty[1024];
for(int i = 0; i < 1024; i++)
{
empty[i] = 0;
}
fileSystem = fopen(argv[1], "w+");
for(int i = 0; i < 1024*fileSize; i++){
int temp = fputs(empty, fileSystem);
if(temp > -1){
//Sucess!
}
else{
cout<<"error"<<endl;
}
}
现在,如果我的数学运算正确,1 char 就是 1byte。 1KB 有 1024 个字节,1 MB 有 1024KB。因此,如果我想要一个 2 MB 的文件,我必须将 1024*1024*2 字节写入该文件。是吗?
我没有遇到任何错误,但我最终得到了一个 0 字节的文件...我不确定我在这里做错了什么,因此非常感谢任何帮助!
谢谢!
【问题讨论】:
-
你觉得
fputs怎么知道要写多少字节? -
fwrite 或 seek/putc('0') 将是您最简单的选择。
-
不要忘记处理错误(例如检查
argc) -
@MooingDuck:我觉得老师会拿一个红色的马克笔,把
putc('0')改成putc(0)或者putc('\0')。此时,学生应拿起红色记号笔,用力划掉课程名称中出现的++标志:)