【发布时间】:2014-10-23 15:43:37
【问题描述】:
我想更改之前创建的 *.txt 文件的大小。为此,我使用chsize。
代码:
#include <iostream>
#include <stdio.h>
#include <io.h>
using namespace std;
int main()
{
FILE *wfile;
wfile = fopen("test.exe", "a");
chsize(wfile, 1024); //error is here
file.close();
return 0;
}
这是错误:
[错误] 从 'FILE* {aka _iobuf*}' 到 'int' 的无效转换 [-fpermissive]
问:这里有什么问题?我用fopen打开了文件,它在互联网上的解释是正确的。
Q2:我喜欢 Windows 作为操作系统,但我不想学习 C++ 的 Windows API 或类似的东西。是否可以选择使用便携式设备?
【问题讨论】:
-
chsize()采用整数作为文件描述符。您无法将FILE*转换为 -- qnx.com/developers/docs/660/… -
file.close();也不好,应该是fclose(wfile); -
A2 到 Q2:使用
<iostream> -
@PiotrS。我不知道 iostream 是否真的做了文件 API 可以做的所有事情。我猜 boost::filesystem 会做所有事情。