在VC++里用fstream类新建一个文件并写入,cout<但是感觉速度很慢,和fortran不能比的。。。
不知道如何提高速度,用fput,fwrite或fprintf会不会快一点?
谢谢
我的程序很简单的
就是:
ofstream f1("xxx.txt",ios_base::app);
for(i=1;i<=N;i++) f1<f1.close();
实际写入时,每次计算完后a[i]和b[i]都会变,所以就继续添加写入文件
一般写入1000*1024个
C++文件写入速度
答案:5 悬赏:10 手机版
解决时间 2021-02-01 02:51
- 提问者网友:椧運幽默
- 2021-01-31 10:07
最佳答案
- 五星知识达人网友:行雁书
- 2021-01-31 11:12
应该是差不多的,说不定有些情况,C++还要快一些,如fprintf() 要分析字符串来动态确定传入的数据类型。cout 在编译器通过重载已经把类型确定下来了,而且其输出那些运算符重载函数都可以内联 。
全部回答
- 1楼网友:忘川信使
- 2021-01-31 15:42
显然fprintf要快的多,不信你读一百万个数写一百万个数,马上就有质的差别。我见过还有更快的。。只是太复杂了。。
- 2楼网友:千杯敬自由
- 2021-01-31 14:29
会快很多……
c++iostream的异常处理太占用时间
- 3楼网友:梦中风几里
- 2021-01-31 12:57
理论上用户想要做的最快就直接使用Windows的API,因为这些C函数在windows操作系统上归根结底都是调用API的
不过就你这个问题而言,现代cpu以及编译器都已经相当强悍了,不太可能让你感觉很慢,要么是你程序写的不太对头,要么是你的错误
最好把代码贴出来,自己不信服的话可以用测量时间的函数自己看看速度到底如何
- 4楼网友:何以畏孤独
- 2021-01-31 12:06
//参考代码
#include
#include
using namespace std;
int main()
{
int a,b;
ifstream infile;
infile.open("myfile.txt"); //注意文件的路径
infile>>a>>b; //两行数据可以连续读出到变量里
infile.close()
//如果是个很大的多行存储的文本型文件可以这么读:
char buf[1024]; //临时保存读取出来的文件内容
string message;
ifstream infile;
infile.open("myfile.js");
if(infile.is_open()) //文件打开成功,说明曾经写入过东西
{
while(infile.good() && !infile.eof())
{
memset(buf,0,1024);
infile.getline(buf,1204);
message = buf;
...... //这里可能对message做一些操作
cout<
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯