读入顺序文件遇到了问题

aran_rs 2005-03-30 10:00:24
当我在读入顺序文件时,有四五十组数,每组数是有一个点名,五个double型数组成,我要用那五个数,但是我用下面的语句时却只循环了一次,请教高手,是什么原因?
while(inClientFile>>pointname>>u>>v>>X>>Y>>Z)
...全文
54 5 打赏 收藏 转发到动态 举报
写回复
用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++标准输入输出度浮点数不太对阿

64,683

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧