Передача данных из файла в файл в Visual C ++ - PullRequest
1 голос
/ 08 декабря 2011

У меня есть код:

    using namespace std;
    int main()
        {
              char Filename[100];
              char st[100][100];
              char *argv[100];
          std::ifstream infile("data.txt");
          std::freopen("output.xls","w",stdout);
    if (!infile)
       {
          cout << " Input file Could not open file." << endl;
          return 1;
       }
    std::string line;
    while (std::getline(infile,line))
       {   
            int a;
            int length=line.size();
            for(a=0;a<=length;a++)
              {
                     Filename[a]=line[a];
              }
       // one D array to 2D array
         int b=0;
         int l=0;
          strcpy(st[0],"0");// for erase previous value
          //cout<<st[0]<<endl;
      for(int j=0;j<=a;j++)
       {
           if (Filename[j]==' ')
             {
                    b++;
                    l=0;
                     strcpy(st[b],"0");// for erase previous value
              }
       else
        {
           st[b][l]=Filename[j];
           l++;
        }

      } //..........
    // 2D array to reffarence array.
      for(int k=0;k<=b;k++)
          {
              argv[k]=&st[k][0];
               cout<<argv[k];// or  cout<<st[k]; i get same 
               cout<<"\t";

           }
         cout<<endl;

           //..............
    // Do whatever with the array content
       }

        infile.close();


         return 0;
      }

файл данных: (один пробел между двумя словами) testCore 100 100 400 5000 5000 "/ конец строки" testCo 1 4 4 100 100 "/ конец строки" tcore 1 3 4 5 20 "/ конец строки" основной 2 3 4 200 4 "/ конец линии"

мой вывод: enter image description here

что я хочу: я хочу прочитать файл данных построчно (это важно) и отделить каждое слово после чтения одной строки, а затем прочитать другую строку. Но проблема в выводе в первом слове каждой строки (также в каждом слове первой строки), что дает вывод мусора. и есть проблема во 2-м столбце также. В чем проблема моего кода? У кого-нибудь есть исправление?

1 Ответ

0 голосов
/ 08 декабря 2011

Вы создаете массив символов размера 100, который не инициализируется.Тогда вы читаете только 3-8 символов.но вы распечатываете весь буфер, включая неинициализированные элементы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...