如何从文件中读取一个数据到C++程序中,并进行运算(在线等)

#include<iostream>#include<fstream>usingnamespacestd;main(){inti,j;floata[4097];FILE*... #include<iostream>
#include<fstream>
using namespace std;
main()
{
int i,j;
float a[4097];
FILE *fp;
if((fp=fopen("e:\\123.txt","r"))==NULL)
{
printf("1cannot open file!\n");
return 0;
}
for(j=1;j<=4096;j++)
fscanf(fp,"%f",&a[j]);
fclose(fp);
float x,R=0.5,b;
x=a[j];
if(x>R)
b=12.56*(1+0.75*(x/R)*(x/R));
else
{
b=12.56*(0.5*(R/x)*(R/x)*(R/x)+0.5625*(R/x)*(R/x)*(R/x)*(R/x)*(R/x));
}

cout<<"b="<<b<<endl;
}
高手给看看;
展开
 我来答
百度网友b8e38466c
2009-05-14 · 超过12用户采纳过TA的回答
知道答主
回答量:38
采纳率:0%
帮助的人:50.8万
展开全部
其实从文件读的数据一般都是字符,要想进行运算必须进行处理
string s;
ifstream infile;
infile.open("test.txt");//
while(getline(infile,s))
{
int a; //存放数据
for( istringstream sin(s) ; sin>>a ; a=a-"0");//你可以添加运算
}
不知道是不是你想要的
如果你是想读取表达式进行运算,那就比较麻烦了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
BELIEFFAITHY
2009-05-14 · 超过14用户采纳过TA的回答
知道答主
回答量:29
采纳率:0%
帮助的人:0
展开全部
假设

#include <iostream>
#include <string>
#include <fstream>
using namespace std;

int main()
{
string str;
ifstream infile("number.txt",ios::binary);

int number[65536] = {0};
infile>>str;
int i=0;
while(1)
{
number[i++] = atoi(str.c_str());
infile>>str;
if( str.empty() ) break;
}

return 0;
}
至于读取指定的第n行数据,肯定需要一个参数n,ifstream有个函数getline但没这个参数,只能这样略过n-1行后再读的就是第n行:(
for(int i=0; i<n-1; i++) infile.getline(buffer, 1024);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
梦想窗外
2009-05-14 · TA获得超过1588个赞
知道大有可为答主
回答量:1180
采纳率:0%
帮助的人:1562万
展开全部
经过for循环后,j= 4097,所以下面的语句导致数组访问越界。
x=a[j];
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
祚胤17
2009-05-14 · TA获得超过786个赞
知道大有可为答主
回答量:1149
采纳率:82%
帮助的人:262万
展开全部
char sRead[1024];
CFile mFile(_T("file.txt"),CFile::modeRead);
while (sRead!=null)
{
mFile.Read(sRead,1024);
CString strnum(sRead);
int num=atoi(strnum);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式