社区
C++ 语言
帖子详情
读入顺序文件遇到了问题
aran_rs
2005-03-30 10:00:24
当我在读入顺序文件时,有四五十组数,每组数是有一个点名,五个double型数组成,我要用那五个数,但是我用下面的语句时却只循环了一次,请教高手,是什么原因?
while(inClientFile>>pointname>>u>>v>>X>>Y>>Z)
...全文
65
5
打赏
收藏
读入顺序文件遇到了问题
当我在读入顺序文件时,有四五十组数,每组数是有一个点名,五个double型数组成,我要用那五个数,但是我用下面的语句时却只循环了一次,请教高手,是什么原因? while(inClientFile>>pointname>>u>>v>>X>>Y>>Z)
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
chaochao1980
2005-03-30
打赏
举报
回复
可能原因是你使用了字符数组,你把字符数组换成string试一下。
fengfeng2003
2005-03-30
打赏
举报
回复
while(inClientFile>>pointn>>u>>v>>X>>Y>>Z)
这样不行的
u、v等都是数组,必须一个一个来
fengfeng2003
2005-03-30
打赏
举报
回复
可以啊
#include <iostream>
#include <fstream>
#include <string>
#include <algorithm>
using namespace std;
void main()
{
double iNum[5];
string strTag;
ifstream in("2.txt");
while (in >> strTag >> iNum[0] >> iNum[1] >> iNum[2] >>iNum[3] >> iNum[4])
{
cout << strTag << '\t';
copy(iNum, iNum+4, ostream_iterator<int>(cout, "\t"));
}
}
aran_rs
2005-03-30
打赏
举报
回复
但是在我强制它循环时,又读进去了
前一个程序是 CFileDialog dlg(TRUE,"txt",NULL,
OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
"Îı¾Îļþ(*.txt)|*.txt|ËùÓÐÀàÐÍ(*.*)|*.*||", NULL);
if(dlg.DoModal()==IDOK)
{
filename1=dlg.GetPathName();
m_input=filename1;
ifstream inClientFile(filename1,ios::in);
while(inClientFile>>pointn>>u>>v>>X>>Y>>Z)
{ for(i=0;;i++)
{
m[2*i*11] =X[i];
m[2*i*11+1] = Y[i];
m[2*i*11+2] =Z[i];
m[2*i*11+3] = 1;
m[2*i*11+4] = 0;
m[2*i*11+5] = 0;
m[2*i*11+6] = 0;
m[2*i*11+7] = 0;
m[2*i*11+8] = -u[i]*X[i];
m[2*i*11+9] = -u[i]*Y[i];
m[2*i*11+10] =- u[i]*Z[i];
m[(2*i+1)*11] = 0;
m[(2*i+1)*11+1] = 0;
m[(2*i+1)*11+2] = 0;
m[(2*i+1)*11+3] = 0;
m[(2*i+1)*11+4] = X[i];
m[(2*i+1)*11+5] = Y[i];
m[(2*i+1)*11+6] = Z[i];
m[(2*i+1)*11+7] = 1;
m[(2*i+1)*11+8] = -v[i]*X[i];
m[(2*i+1)*11+9] = -v[i]*Y[i];
m[(2*i+1)*11+10] = -v[i]*Z[i];
}
for(int j=0;j<49;j++)
{
n[j*2+0]=u[j];
n[j*2+1]=v[j];}}
但是读不进去,但是如果我强制它读
char pointn[6];
double u[49],v[49],X[49],Y[49],Z[49];
for (int kt=0;kt<49;kt++)
{
inClientFile>>pointn>>u[kt]>>v[kt]>>X[kt]>>Y[kt]>>Z[kt];
}
// while(inClientFile>>pointn>>u>>v>>X>>Y>>Z)
for(i=0;i<49;i++)
{
m[2*i*11] =X[i];
m[2*i*11+1] = Y[i];
m[2*i*11+2] =Z[i];
m[2*i*11+3] = 1;
m[2*i*11+4] = 0;
m[2*i*11+5] = 0;
m[2*i*11+6] = 0;
m[2*i*11+7] = 0;
m[2*i*11+8] = -u[i]*X[i];
m[2*i*11+9] = -u[i]*Y[i];
m[2*i*11+10] =- u[i]*Z[i];
m[(2*i+1)*11] = 0;
m[(2*i+1)*11+1] = 0;
m[(2*i+1)*11+2] = 0;
m[(2*i+1)*11+3] = 0;
m[(2*i+1)*11+4] = X[i];
m[(2*i+1)*11+5] = Y[i];
m[(2*i+1)*11+6] = Z[i];
m[(2*i+1)*11+7] = 1;
m[(2*i+1)*11+8] = -v[i]*X[i];
m[(2*i+1)*11+9] = -v[i]*Y[i];
m[(2*i+1)*11+10] = -v[i]*Z[i];
}
又读进去了
arrowcy
2005-03-30
打赏
举报
回复
好像c++标准输入输出度浮点数不太对阿
C++ 语言
65,184
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章