簡體   English   中英

從文件C ++讀取/寫入數組

[英]Reading/writing array from file c++

我是C ++的初學者,我想弄清楚文件中的in /​​ output如何工作。 該程序應該將整數數組寫入文件,然后從文件中讀取,排序,獲取平方整數的數量,然后將結果寫回到文件中。但是,當我嘗試編譯時,它告訴我認為““ <<”操作數對於類是非法的。 誰能告訴我怎么回事? 我試圖避免使用.get和.put。

#include <iostream>
#include <fstream>
using namespace std;

void sorting(int *p);
int squares(int *p);
int main() {
   int i, arr[10], *p = &arr[0], sq;
   char name[50];
   cout << "Give the file's name:";
   cin >> name;
   ofstream myfile(name, ios::out);
   cout << "Give the elements:";
   for (i = 0; i < 10; i++)
      myfile << *(p + i);
   myfile.close();

   ifstream myfile(name, ios::in);
   for (i = 0; i < 10; i++)
      myfile >> *(p + i);
   sq = squares(arr);
   sorting(arr);
   myfile.close();
   ofstream myfile(name, ios::app);
   for (i = 0; i < 10; i++) {
      myfile << "The sorted array is:";
      myfile << *(p + i);
   }
   myfile << "The number of square numbers is: " << sq;
   myfile.close();
   return 0;
}
void sorting(int *p) {
   int temp;
   for (int i = 0; i < 9; i++)
      for (int j = i + 1; j < 10; j++)
         if (*(p + i)>*(p + j)) {
            temp = *(p + i);
            *(p + i) = *(p + j);
            *(p + j) = temp;
         }
}
int squares(int *p) {
   int count = 0;
   for (int i = 0; i < 10; i++)
      if ((*(p + i) % 2) == 0)
         count++;

   return count;
}

您將多次重新定義myfile 更改main()以使每個聲明都是唯一的。 這在GCCGCC

int main() {
   int i, arr[10], *p = &arr[0], sq;
   char name[50];
   cout << "Give the file's name:";
   cin >> name;
   ofstream myfile1(name, ios::out);
   cout << "Give the elements:";
   for (i = 0; i < 10; i++)
      myfile1 << *(p + i);
   myfile1.close();

   ifstream myfile2(name, ios::in);
   for (i = 0; i < 10; i++)
      myfile2 >> *(p + i);
   sq = squares(arr);
   sorting(arr);
   myfile2.close();
   ofstream myfile3(name, ios::app);
   for (i = 0; i < 10; i++) {
      myfile3 << "The sorted array is:";
      myfile3 << *(p + i);
   }
   myfile3 << "The number of square numbers is: " << sq;
   myfile3.close();
   return 0;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM