Member 14798799 Ответов: 3

Как мне исправить эти проблемы с кодированием ?


#include 

#include 

using namespace std;
//--------------------------------------------------------------------------------------------------------------
int A[100];
int n;

//----------------------------------------------------------------------------------------------------------
void Skaityti()
{int i;
  ifstream fin("Duomenys6.txt");
  fin >> n;
  //cout > A[i];
  fin.close();
}
//-------------------------------------------------------------------------------------------------------------
{
void Skaityti();

  return 0;
}
//-------------------------------------------------------------------
void Spausdinti()
  {ofstream fout("Rezultatai6.txt");
  fout << " Krituliai (lietus)       " << endl;
  fout << "--------------------------" << endl;
  fout << " Diena Krituliu kiekis(mm)" << endl;
  fout << "--------------------------" << endl;
  for (int i = 0; i < n; i++)
  fout << setw(4) << i + 1 << setw(10) << A[i] << endl;
  fout << "--------------------------" << endl;
  fout.close();
}
{
  Skaityti();
  Spausdinti();
  return 0;
}
//------------------------------------------------------------------------
int Kiekis() {
  int s = 0;
  for (int i = 0; i < n; i++)
    s = s + A[i];
  return s;
}
//-----------------------------------------------------------------------------
int Nelijo() {
  int s = 0;
  for (int i = 0; i < n; i++)
    if (A[i] == 0) s = s + 1;
  return s;
}


Что я уже пробовал:

кодовый блок показывает ошибку в 21 строке: ожидаемый неквалифицированный идентификатор перед токеном '{'
34 строка: setw не был объявлен
38 строка: ожидаемый неквалифицированный идентификатор перед токеном '{'
Он показывает ошибки,но я не знаю, как это исправить

3 Ответов

Рейтинг:
2

Greg Utas

Строка 34: вам нужно #include <iomanip>, который находится там же setw определяемый.
Строка 38: } в строке 37 функция закрывается Spausdinti. Тогда у вас есть { в области действия файла. Это выглядит так, как будто это должно быть начало функции, но нет никакой сигнатуры функции.
Строка 21: Теперь, когда я могу попытаться считать вплоть до этого номера строки, void Skaityti(); это объявление функции только. Снимите крышку ; если его определение предполагается return 0 вот что следует.


Рейтинг:
0

OriginalGriff

Посмотрите на свой код:

fin.close();
}
//-------------------------------------------------------------------------------------------------------------
{                           <<<<<---- What's this doing here?
void Skaityti();

return 0;
Снимите его и посмотрите, что произойдет
И это тоже:
fout.close();
}
{                           <<<<<---- Eh?
Skaityti();
Spausdinti();
return 0;
}
И сделайте себе одолжение: выберите стиль отступа, как придерживаться его - вы даже можете использовать отвратительный 1 ТБ, если вы должны, пока вы последовательны. Mix'n'Match не делает ваш код более легким для чтения - и делает такие проблемы более трудными для понимания.


Рейтинг:
0

Patrice T

Попробуйте заменить

//-------------------------------------------------------------------------------------------------------------
{
void Skaityti();

  return 0;
}

с
//-------------------------------------------------------------------------------------------------------------
void Skaityti();
{

  return 0;
}