注册 登录
编程论坛 C++教室

关于从文件中输出的问题

大柚子 发布于 2014-10-30 23:49, 375 次点击
我现在有一个矩阵,需要把里面每个元素中特定的字母排列到一起,我已经实现了单个元素的操作
那么问题来了 假设一个8*8矩阵 其信息在一个文件中 元素是分行的 怎么样按元素赋给字符串或者数组?     要是用getline()读,在换行的时候就会停止 怎么样能继续把下一行的元素赋值给数组或者字符串?
这是单个元素操作的代码
#include "iostream"
#include "fstream"
#include<stdio.h>
#include<string.h>

using namespace std;

void main()
{
    //input
    char g[1000]={'\0'};
    fstream f("try",ios::in);
    f.getline(g,1000);
    printf("input finished\n");
   
    //识别加号
    int jia[1000]={0};
    int xishu[100]={0};
    int q,u,i,j,k=0,m;
    u=1;
    jia[0]=-1;
    for(i=0;i<1000;i++)
    {
      if((g[i]=='+')||(g[i]=='-'))
      {jia[u]=i,u++;}
    }
    jia[u]=strlen(g);
    q=strlen(g);
    q=q-1;
    for(i=0;i<u;i++)
    {
      k=0;
      for(j=jia[i]+1;j<jia[i+1];j++)
      {
    //识别x
    if(g[j]=='x')
    {xishu[k]=j,k++;}
      }
      for(j=0;j<k;j++)
      {
    for(m=xishu[j];m>jia[i]+1;m--)
    {
      g[m]=g[m-1];
    }
    g[jia[i]+1]='x';
      }
    }


    for(i=0;i<jia[u];i++)
      {printf("g[%d]=%c \n",i,g[i]);}

    fstream fs;
     fs.open("tryb",ios::out);
     fs<<"数组元素如下:";
     for(int i=0;i<q;i++)
      fs<<g[i];
     fs<<g[q];
     fs.close();
}
1 回复
#2
stop12042014-10-31 07:53
用get()也可以.只要读取到了'\n' 就开始第二行 .
你需要的是重复读取.加个循环
1