Возможно, я пропустил некоторые, но я считаю, что я отметил все изменения, которые я сделал, чтобы исправить это.Много синтаксических ошибок, которые я поместил // Исправлено рядом с.Также в основном я изменил распределение на новые песни [20], поэтому вы выделяете достаточно места для 20 новых песен.
#include <iostream>
#include <fstream>
using namespace std;
struct Songs{ // Fixed - You had an uppercase S on 'struct'
string title;
string artist;
int mem; //size of file in MBs
}; // fixed - Removed since we will be allocating in Main()
int main() // fixed - you are missing () at the end of main
{
Songs * pointer = new Songs[20]; //up to 20 possible songs // Fixed - You allocate 20 new Songs here
int num = 0;
ifstream fin;
fin.open("input.txt");
while (fin.good())
{
// Fixed - all uses of pointer as an array don't need to be de-referenced with *, [num] will do it
getline(fin, pointer[num].title); // Fixed - you were missing the functions closing )
if (pointer[num].title.empty()) //to skip blank lines
continue;
getline(fin, pointer[num].artist); // Fixed - you were missing the functions closing )
fin >> pointer[num].mem; //get to avoid whitespace/enter // Fixed - removed .get()
num++;
}
for (int i = 0; i<num;i++) // my test to see if it reads in properly
{
cout << pointer[num].title << endl;
cout << pointer[num].artist << endl;
cout << pointer[num].mem << endl;
}
fin.close();
delete [] pointer;
return 0;
}