的大小我有我使用返回文件的大小返回文件
float filesize(const char * filename){
struct stat buf;
stat(filename, &buf);
return buf.st_size;
}
我試圖找出優雅的方式的功能,如何在MB返回尺寸/ GB/KB,而不是大數字? + extenstion e.g
1,25gb
12,44kb
我試圖返回的ostream e.g
ostringstream filesize(const char * filename){
ostringstream os;
struct stat buf;
stat(filename, &buf);
if(buf.st_size > 1024000){
os << setprecision(2) << (float)buf.st_size/1024000 <<"mb";
}else if(buf.st_size > 1024){
os << setprecision(2) << (float)buf.st_size/1024 <<"kb";
}
return os;
}
這returing OS拋出
error: use of deleted function
。
爲什麼會發生此錯誤?另外,有沒有其他方式來以gb/mb/kb的形式返回大小?
我建議你應該返回'std :: string',而不是'ostringstream'。 – MikeCAT
二進制巨型不是1024000. – user2079303
如果仔細查看錯誤消息,它應該解釋您嘗試使用哪個已刪除的函數。 – user2079303