C++读txt文件中的内容,并输出

小弟想用C++编写一个程序,是关于读取txt文件中的内容的。txt文件内容如下,endcurve102893#pts=102*Minval=2.999939e+003at... 小弟想用C++编写一个程序,是关于读取txt文件中的内容的。
txt文件内容如下,
endcurve
102893 #pts=102
* Minval= 2.999939e+003 at time= 0.012000
* Maxval= 2.999945e+003 at time= 0.023999
0.000000e+000 3.000000e+003
2.996583e-003 2.999979e+003
5.999796e-003 2.999956e+003
8.996355e-003 2.999944e+003
1.199955e-002 2.999939e+003
endcurve
102894 #pts=102
* Minval= 2.999938e+003 at time= 0.012000
* Maxval= 2.999944e+003 at time= 0.023999
0.000000e+000 3.000000e+003
2.996583e-003 2.999979e+003
5.999796e-003 2.999956e+003
8.996355e-003 2.999943e+003
1.499611e-002 2.999939e+003
.......
如上所示,该txt文件有如下几个特点
(1)每4行含有英文的东西后,就有5行数组。现在我想通过c++把这个txt文件读入,并且在读的过程中,跳过那些英文不读。只读取数组。并把数组输出到另外一个txt文件中
请给我一个合适的编程过程好吗?
小弟不胜感激。采纳的答案,给予50分奖励
展开
 我来答
孤独飞雪飘
推荐于2016-09-01 · 只要有你陪我,静静的就足够!
孤独飞雪飘
采纳数:2228 获赞数:9895

向TA提问 私信TA
展开全部
C++读txt文件中的内容,代码如下:
#include <iostream> 
#include <fstream> 
#include <sstream> 
#include <string> 
#include <vector> 
using namespace std; 
void fileRead(string& fileName,vector<string>& vect) 

 ifstream file(fileName.c_str()); 
 while(!file.eof()) 
 { 
  string strTemp; 
  int i=1; 
  while(!file.eof()&&i<5) 
  { 
   i++; 
   getline(file,strTemp); 
  } 
  while (!file.eof()&&i<10) 
  { 
   i++; 
   getline(file,strTemp); 
   istringstream str(strTemp); 
   string strWord; 
   string strIn; 
   while(str>>strWord) 
   { 
    if(strWord!=""&&strWord!="\r") 
     vect.push_back(strWord); 
   } 
  } 
 } 

void fileWrite(string& fileName,vector<string>& vect) 

 ofstream file(fileName.c_str()); 
 int i=0;   //用于控制输出格式,每行两个数组元素 
 for (vector<string>::iterator iter=vect.begin();iter!=vect.end();iter++) 
 { 
  file<<*iter; 
  if(i==0) 
  { 
   file<<"\t"; 
   i=1; 
  } 
  else 
  { 
   file<<endl; 
   i=0; 
  } 
 } 

void main() 

 string a="1.txt"; 
 string b="2.txt"; 
 vector<string> vect; 
 fileRead(a,vect);  //a读出 
 fileWrite(b,vect);  //写入b 
}
guanyayang
推荐于2017-12-16 · TA获得超过1134个赞
知道小有建树答主
回答量:377
采纳率:0%
帮助的人:276万
展开全部
楼上的没有看清楼主要求用c++写吗?
用c++写的,不懂的百度hi我,自己写的

#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
#include <vector>
using namespace std;
void fileRead(string& fileName,vector<string>& vect)
{
ifstream file(fileName.c_str());
while(!file.eof())
{
string strTemp;
int i=1;
while(!file.eof()&&i<5)
{
i++;
getline(file,strTemp);
}
while (!file.eof()&&i<10)
{
i++;
getline(file,strTemp);
istringstream str(strTemp);
string strWord;
string strIn;
while(str>>strWord)
{
if(strWord!=""&&strWord!="\r")
vect.push_back(strWord);
}
}
}
}
void fileWrite(string& fileName,vector<string>& vect)
{
ofstream file(fileName.c_str());
int i=0; //用于控制输出格式,每行两个数组元素
for (vector<string>::iterator iter=vect.begin();iter!=vect.end();iter++)
{
file<<*iter;
if(i==0)
{
file<<"\t";
i=1;
}
else
{
file<<endl;
i=0;
}
}
}
void main()
{
string a="1.txt";
string b="2.txt";
vector<string> vect;
fileRead(a,vect); //a读出
fileWrite(b,vect); //写入b
}

希望能帮到你~
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
davidrin
2010-03-20 · TA获得超过1788个赞
知道小有建树答主
回答量:718
采纳率:100%
帮助的人:813万
展开全部
#include<stdio.h>
#include<stdlib.h>

#define MAXCOUNT 500

struct {
float x,y;
} coordinates[MAXCOUNT];

int readdata( char* fname )
{
FILE *fp;
int n = 0;
char s[256]; //line buffer

if( (fp=fopen(fname,"rt")) == NULL ) return -1;
while( !feof(fp) )
{
if( fgets( s, sizeof(s), fp ) == NULL )
break; //出错或到文件结尾则跳出
if( *s == ' ' ) //注意到要读的数对所在的行都是以空格开头的,所以忽略所有开头不是空格的行
{
sscanf( s, "%f%f", &coordinates[n].x, &coordinates[n].y );
n++;
}
}
fclose(fp);
return n; //返回读取的坐标对数量
}

int main()
{
int k, n = readdata( "myfile.txt" );
for( k=0; k<n; k++ )
printf( "pair [%3d]: %e, %e\n", k, coordinates[k].x, coordinates[k].y );
}

调整到你需要的输出后,用 myprog > newtxt.txt (重定向操作)即可生成新的文本文件(假定你把上面这个C文件起名叫myprog.c)。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式