大家帮小弟我看看这么简单的有关问题 白拿分了 可能要放假了 小弟我什么都看不进去了
大家帮我看看这么简单的问题 白拿分了 可能要放假了 我什么都看不进去了
// AerodynamicModel_New.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <string>
void ModifyPIN(){
const int numberOfGrids = 500; //后续改动
double gridxyz[numberOfGrids][3], gridxyzOffset[numberOfGrids][3];
int iterations;
std::string line, strTmp1, strTmp2;
std::ifstream input1;
std::ifstream input2;
std::ofstream output;
input1.open("复件new_mgaero.dat");
input1>>line;
std::cout<<line;
//检查文件是否打开成功
//if(!input1){
//std::cerr << "error: unable to open input file: 复件new_mgaero.dat " << std::endl;
//return -1;
//}
while(std::getline(input2,line)){
if(line == "wing1:DOMAIN")
input1 >> strTmp1 >> strTmp2 >> iterations;
input1 >> iterations;
for(int j=0; j<numberOfGrids; ++j){
input1 >> gridxyzOffset[j][0] >> gridxyzOffset[j][1] >> gridxyzOffset[j][2];
}
}
input1.clear(), input1.close();
output.open("m7.PIN", std::ofstream::out);
input2.open("m6.PIN", std::ofstream::in);
//检查文件是否打开成功
if(!input2){
std::cerr << "error: unable to open input file: m6.PIN " << std::endl;
//return -1;
}
while(std::getline(input2,line)){
output << line;
if (line == "BEGIN GRID DATA" )
for(int i=0; i<numberOfGrids; ++i){
input2 >> gridxyz[i][0] >> gridxyz[i][1] >> gridxyz[i][2]; //还不确定坐标顺序,并且某个坐标(比如x)是单独一行,然后下面的某些行是没有这个坐标的
gridxyz[i][0] += gridxyzOffset[i][0];
gridxyz[i][1] += gridxyzOffset[i][1];
gridxyz[i][2] += gridxyzOffset[i][2];
output << gridxyz[i][0] << gridxyz[i][1] << gridxyz[i][2];//次数是写入两个数的,要改
//gridMap.insert(valType1(gridID[i], gridxyz[i]))
}
std::cout << "ok";
line="22";
}
std::string a;
a = line;
input2.clear(), input2.close();
}
int _tmain(int argc, _TCHAR* argv[])
{
std::string a,b;
ModifyPIN();
//b=a;
std::cout << b;
return 0;
}
为什么那两个文件都没有读成功?就这么直接的问题,立刻给分啦
------解决方案--------------------
input1>>line;
std::cout<<line;
这个干吗用?
#include<fstream>
#include<iostream>
#include<string>
using namespace std;
int main(int argc, char* argv[])
{
ifstream in("ain.in");
ofstream out("aout.out");
string str;
for(;getline(in,str);){
out<<str<<endl;
}
out.close();
in.close();
return 0;
}
------解决方案--------------------
我来白拿分的
// AerodynamicModel_New.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <string>
void ModifyPIN(){
const int numberOfGrids = 500; //后续改动
double gridxyz[numberOfGrids][3], gridxyzOffset[numberOfGrids][3];
int iterations;
std::string line, strTmp1, strTmp2;
std::ifstream input1;
std::ifstream input2;
std::ofstream output;
input1.open("复件new_mgaero.dat");
input1>>line;
std::cout<<line;
//检查文件是否打开成功
//if(!input1){
//std::cerr << "error: unable to open input file: 复件new_mgaero.dat " << std::endl;
//return -1;
//}
while(std::getline(input2,line)){
if(line == "wing1:DOMAIN")
input1 >> strTmp1 >> strTmp2 >> iterations;
input1 >> iterations;
for(int j=0; j<numberOfGrids; ++j){
input1 >> gridxyzOffset[j][0] >> gridxyzOffset[j][1] >> gridxyzOffset[j][2];
}
}
input1.clear(), input1.close();
output.open("m7.PIN", std::ofstream::out);
input2.open("m6.PIN", std::ofstream::in);
//检查文件是否打开成功
if(!input2){
std::cerr << "error: unable to open input file: m6.PIN " << std::endl;
//return -1;
}
while(std::getline(input2,line)){
output << line;
if (line == "BEGIN GRID DATA" )
for(int i=0; i<numberOfGrids; ++i){
input2 >> gridxyz[i][0] >> gridxyz[i][1] >> gridxyz[i][2]; //还不确定坐标顺序,并且某个坐标(比如x)是单独一行,然后下面的某些行是没有这个坐标的
gridxyz[i][0] += gridxyzOffset[i][0];
gridxyz[i][1] += gridxyzOffset[i][1];
gridxyz[i][2] += gridxyzOffset[i][2];
output << gridxyz[i][0] << gridxyz[i][1] << gridxyz[i][2];//次数是写入两个数的,要改
//gridMap.insert(valType1(gridID[i], gridxyz[i]))
}
std::cout << "ok";
line="22";
}
std::string a;
a = line;
input2.clear(), input2.close();
}
int _tmain(int argc, _TCHAR* argv[])
{
std::string a,b;
ModifyPIN();
//b=a;
std::cout << b;
return 0;
}
为什么那两个文件都没有读成功?就这么直接的问题,立刻给分啦
------解决方案--------------------
input1>>line;
std::cout<<line;
这个干吗用?
#include<fstream>
#include<iostream>
#include<string>
using namespace std;
int main(int argc, char* argv[])
{
ifstream in("ain.in");
ofstream out("aout.out");
string str;
for(;getline(in,str);){
out<<str<<endl;
}
out.close();
in.close();
return 0;
}
------解决方案--------------------
我来白拿分的