Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.11.2011, 22:18   #1
Kroleg
Пользователь
 
Регистрация: 26.03.2011
Сообщений: 18
По умолчанию Не получается чтение матрицы с файла..

В программе не получается считать с файла. А именно, я хочу чтобы после считывания строки, программа при определении нажатия клавиши Enter - if (p=="\n"), выполняла условие после if.
Нерабочий фрагмент:
Код:
// Чтение с файла
                   int i=0, j=0;
                  ifstream fi ("lr5.txt");      // открытие файла
                          while (!fi.eof())
                          {
                              fi>>A[i][j];
                              j=j+1;
                              fi>>p;
 
                              if (p=="\n")                   //Если Enter
                          {
                          m=j;
                          j=0;
                          i=i+1;
                           }
                          }
                          n=i;
                          fi.close(); // закрытие файла
Вся программа:

#include <vcl.h>
#include <conio.h>
#include <stdio.h>
#include <iostream.h>
#include <fstream.h>
//---------------------------------------------------------------------------
char p;      //число из файла
int main(int argc, char* argv[])
    {
     char ch; int A[50][50], A_dop[50][50], n=10, m=10;
     do
       {
//---------------------------------------------------------------------------
        cout<<"          Nazhmite nyzhnyy klavishy: "<<endl<<endl;

        cout<<"   1 - Vvesti matrizy s klaviatyru            \n";
        cout<<"   2 - Chtenie iz file                        \n";
        cout<<"   3 - Zapis v file                           \n";
        cout<<"   4 - Poisk elementa                         \n";
        cout<<"   5 - Ydaleniye elementa                     \n";
        cout<<"   0 - exit                                   \n"<<endl;
        cout<<"+++++++++++++++++++++++++++++++++++++\n"<<endl;

        cout<<"Chto vu vubiraete? : ";
        cin>>ch;
//---------------------------------------------------------------------------
        switch (ch)
            {
             case '2':
             {
                  // Чтение с файла
                   int i=0, j=0;
                  ifstream fi ("lr5.txt");      // открытие файла




                          while (!fi.eof())
                          {
                              fi>>A[i][j];
                              j=j+1;
                              fi>>p;            

                              if (p==10)                   //Если Enter
                          {
                          m=j;
                          j=0;
                          i=i+1;
                           }
                          }
                          n=i;
                          fi.close(); // закрытие файла

         // Вывод матрицы на экран
                  cout<<"Vasha matriza: \n";
                  for (i=0;i<n;i++)
                      {
                       for (j=0;j<m;j++)
                            cout<<A[i][j]<<" ";
                       cout<<"\n";
                      }

                // Обработка матрицы
 
 cout<<endl<<"Matrizi posle vupolneniya zadaniya: "<<endl;
  for (i=0; i<n; i++)
  for (int j=0; j<m; j++)
  {
   A_dop[i][j]=A[i][j];
  }
  for (i=0; i<n; i++)
  for (int j=0; j<m; j++)
  {
    if (i!=0 && j!=0 && i!=n-1 && j!=m-1)
     {
     A_dop[i][j]=A[i][j+1]+A[i+1][j]+A[i][j-1]+A[i-1][j];
     }
     }

 //Вывод обработанного массива на экран:
 for (int i=0; i<n; i++)
  {
  for (int j=0; j<m; j++)
  {
   cout<<A_dop[i][j]<<" ";
  }
  cout<<endl;
  }
  }
  break;

            case '5':
                 {
                  int el,ud,i,j;
                  cout<<"Vvedite element, kotoriy vy hotite udalit, el=";
                  cin>>el;
                  for (i=0;i<m;i++)
                       for (j=0;j<n;j++)
                            if (A[i][j]==el)
                                {
                                 cout<<" Udalyaem element A["<<i+1<<"]["<<j+1<<"]="<<A[i][j]<<"\n";
                                 A[i][j]=0;
                                }
                  for (i=0;i<n;i++)
                      {
                       for (j=0;j<m;j++)
                            cout<<A[i][j]<<" ";
                       cout<<"\n";
                      }
                 }
                break;
                 }
            }
     while (ch!='0');
     getch ();
     return 0;
    }

________
Вы до сих пор не читали правила?
И не знаете, что код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #) ?!

Сие есть весьма прискорбно!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 15.11.2011 в 23:01.
Kroleg вне форума Ответить с цитированием
Старый 16.11.2011, 00:57   #2
<gr>
Пользователь
 
Регистрация: 13.11.2011
Сообщений: 11
По умолчанию

Цитата:
Сообщение от Kroleg Посмотреть сообщение
Код:
                         if (p=="\n")                   //Если Enter
                          {
                             m=j;
                             j=0;
                             i=i+1;
                          }
Что первым бросается в глаза- переменная p типа char. В этом случае не допустимо использование "\n". Замените на '\n'.
The truth is out there...
<gr> вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Чтение матрицы из файла Alina_Honey Паскаль, Turbo Pascal, PascalABC.NET 15 14.01.2013 22:11
не получается сортировка матрицы в чем ошибка? Darki Паскаль, Turbo Pascal, PascalABC.NET 5 23.06.2010 00:26
чтение с COM-порта в отдельном потоке не получается lexluter1988 Общие вопросы .NET 2 25.05.2010 20:40
Чтение матрицы по спирали AlexLAN Общие вопросы C/C++ 1 21.12.2008 07:50
Не получается прочитать из файла...( Regloger Помощь студентам 3 09.12.2007 14:23