2015-04-06 21 views
-4

如果你們能幫我修復我的代碼,我將永遠感激不盡。我只需要一些調試幫助(C++)。我遇到了多個問題,我不確定如何修復

這些是Visual Studio 2013持續發佈給我的錯誤。

1>------ Build started: Project: PA2, Configuration: Debug Win32 ------ 

1> Main.cpp 

1>filepath(71): error C2146: syntax error : missing ')' before identifier 'i' 

1>filepath(71): error C2061: syntax error : identifier 'i' 

1>filepath(71): error C2059: syntax error : ')' 

1>filepath(73): error C2143: syntax error : missing '}' before ';' 

1>filepath(73): error C2064: term does not evaluate to a function taking 1 
arguments 

1>filepath(74): error C2146: syntax error : missing ';' before identifier 'endl' 

1>filepath(74): warning C4551: function call missing argument list 

1>filepath(75): error C2676: binary '[' : 'std::ofstream' does not define this 
operator or a conversion to a type acceptable to the predefined operator 

1>filepath(75): error C2228: left of '.ISBN' must have class/struct/union 

1>filepath(77): error C2676: binary '[' : 'std::ofstream' does not define this 
operator or a conversion to a type acceptable to the predefined operator 

1>filepath(77): error C2228: left of '.Author' must have class/struct/union 

1>filepath(79): error C2676: binary '[' : 'std::ofstream' does not define this 
operator or a conversion to a type acceptable to the predefined operator 
1>filepath(79): error C2228: left of '.Title' must have class/struct/union 

1>filepath(81): error C2676: binary '[' : 'std::ofstream' does not define this 
operator or a conversion to a type acceptable to the predefined operator 

1>filepath(81): error C2228: left of '.Quantity' must have class/struct/union 

1>filepath(83): error C2676: binary '[' : 'std::ofstream' does not define this 
operator or a conversion to a type acceptable to the predefined operator 

1>filepath(83): error C2228: left of '.Price' must have class/struct/union 

1>filepath(84): warning C4804: '>' : unsafe use of type 'bool' in operation 

1>filepath(92): error C2046: illegal case 

1>filepath(97): error C2059: syntax error : ';' 

1>filepath(98): error C2440: '=' : cannot convert from 'nullptr' to 'int' 

1>   A native nullptr can only be converted to bool or, using 
reinterpret_cast, to an integral type 

1>filepath(101): error C2046: illegal case 

1>filepath(129): error C2676: binary '[' : 'std::ofstream' does not define this 
operator or a conversion to a type acceptable to the predefined operator 

1>filepath(129): error C2228: left of '.ISBN' must have class/struct/union 

1>filepath(131): error C2676: binary '[' : 'std::ofstream' does not define this 
operator or a conversion to a type acceptable to the predefined operator 

1>filepath(131): error C2228: left of '.Quantity' must have class/struct/union 

1>filepath(137): error C2676: binary '[' : 'std::ofstream' does not define this 
operator or a conversion to a type acceptable to the predefined operator 

1>filepath(139): error C2676: binary '[' : 'std::ofstream' does not define this 
operator or a conversion to a type acceptable to the predefined operator 

1>filepath(139): error C2228: left of '.Quantity' must have class/struct/union 

1>filepath(145): error C2676: binary '[' : 'std::ofstream' does not define this 
operator or a conversion to a type acceptable to the predefined operator 

1>filepath(148): error C2676: binary '[' : 'std::ofstream' does not define this 
operator or a conversion to a type acceptable to the predefined operator 

1>filepath(148): error C2228: left of '.Quantity' must have class/struct/union 

1>filepath(149): error C2676: binary '[' : 'std::ofstream' does not define this 
operator or a conversion to a type acceptable to the predefined operator 

1>filepath(149): error C2228: left of '.Quantity' must have class/struct/union 

1>filepath(160): error C2143: syntax error : missing ';' before '{' 

1>filepath(166): error C2046: illegal case 

1>filepath(175): error C2143: syntax error : missing ';' before 'do' 

1>filepath(179): error C2146: syntax error : missing ';' before identifier 
'binarySearch' 

1>filepath(179): error C3861: 'binarySearch': identifier not found 

1>filepath(182): error C2143: syntax error : missing ';' before '{' 

1>filepath(188): error C2046: illegal case 

1>   c:\program files (x86)\microsoft visual studio 
12.0\vc\include\string(135) : see declaration of 'std::operator >>' 

1>   c:\program files (x86)\microsoft visual studio 
12.0\vc\include\string(135) : see declaration of 'std::operator >>' 

1>   c:\program files (x86)\microsoft visual studio 
12.0\vc\include\string(135) : see declaration of 'std::operator >>' 

1>   c:\program files (x86)\microsoft visual studio 
12.0\vc\include\string(135) : see declaration of 'std::operator >>' 

1>   c:\program files (x86)\microsoft visual studio 
12.0\vc\include\string(135) : see declaration of 'std::operator >>' 

1>   c:\program files (x86)\microsoft visual studio 
12.0\vc\include\string(21) : see declaration of 'std::operator >>' 

1>   c:\program files (x86)\microsoft visual studio 
12.0\vc\include\string(21) : see declaration of 'std::operator >>' 

1>   c:\program files (x86)\microsoft visual studio 
12.0\vc\include\string(21) : see declaration of 'std::operator >>' 

1>   c:\program files (x86)\microsoft visual studio 
12.0\vc\include\string(21) : see declaration of 'std::operator >>' 

1>   c:\program files (x86)\microsoft visual studio 
12.0\vc\include\string(21) : see declaration of 'std::operator >>' 

1>   c:\program files (x86)\microsoft visual studio 
12.0\vc\include\istream(1103) : see declaration of 'std::operator >>' 

1>   c:\program files (x86)\microsoft visual studio 
12.0\vc\include\istream(1103) : see declaration of 'std::operator >>' 

1>   c:\program files (x86)\microsoft visual studio 
12.0\vc\include\istream(1103) : see declaration of 'std::operator >>' 

1>   c:\program files (x86)\microsoft visual studio 
12.0\vc\include\istream(1103) : see declaration of 'std::operator >>' 

1>   c:\program files (x86)\microsoft visual studio 
12.0\vc\include\istream(1103) : see declaration of 'std::operator >>' 

1>   c:\program files (x86)\microsoft visual studio 
12.0\vc\include\istream(1093) : see declaration of 'std::operator >>' 

1>   c:\program files (x86)\microsoft visual studio 
12.0\vc\include\istream(1093) : see declaration of 'std::operator >>' 

1>   c:\program files (x86)\microsoft visual studio 
12.0\vc\include\istream(1093) : see declaration of 'std::operator >>' 

1>   c:\program files (x86)\microsoft visual studio 
12.0\vc\include\istream(1093) : see declaration of 'std::operator >>' 

1>   c:\program files (x86)\microsoft visual studio 
12.0\vc\include\istream(1093) : see declaration of 'std::operator >>' 

1>   c:\program files (x86)\microsoft visual studio 
12.0\vc\include\istream(1086) : see declaration of 'std::operator >>' 

1>   c:\program files (x86)\microsoft visual studio 
12.0\vc\include\istream(1086) : see declaration of 'std::operator >>' 

1>   c:\program files (x86)\microsoft visual studio 
12.0\vc\include\istream(1086) : see declaration of 'std::operator >>' 

1>   c:\program files (x86)\microsoft visual studio 
12.0\vc\include\istream(1086) : see declaration of 'std::operator >>' 

1>   c:\program files (x86)\microsoft visual studio 
12.0\vc\include\istream(1086) : see declaration of 'std::operator >>' 

1>   c:\program files (x86)\microsoft visual studio 
12.0\vc\include\istream(1079) : see declaration of 'std::operator >>' 

1>   c:\program files (x86)\microsoft visual studio 
12.0\vc\include\istream(1079) : see declaration of 'std::operator >>' 

1>   c:\program files (x86)\microsoft visual studio 
12.0\vc\include\istream(1079) : see declaration of 'std::operator >>' 

1>   c:\program files (x86)\microsoft visual studio 
12.0\vc\include\istream(1079) : see declaration of 'std::operator >>' 

1>   c:\program files (x86)\microsoft visual studio 
12.0\vc\include\istream(1079) : see declaration of 'std::operator >>' 

1>   c:\program files (x86)\microsoft visual studio 
12.0\vc\include\istream(1072) : see declaration of 'std::operator >>' 

1>   c:\program files (x86)\microsoft visual studio 
12.0\vc\include\istream(1072) : see declaration of 'std::operator >>' 

1>   c:\program files (x86)\microsoft visual studio 
12.0\vc\include\istream(1072) : see declaration of 'std::operator >>' 

1>   c:\program files (x86)\microsoft visual studio 
12.0\vc\include\istream(1072) : see declaration of 'std::operator >>' 

1>   c:\program files (x86)\microsoft visual studio 
12.0\vc\include\istream(1072) : see declaration of 'std::operator >>' 

1>   c:\program files (x86)\microsoft visual studio 
12.0\vc\include\istream(1047) : see declaration of 'std::operator >>' 

1>   c:\program files (x86)\microsoft visual studio 
12.0\vc\include\istream(1047) : see declaration of 'std::operator >>' 

1>   c:\program files (x86)\microsoft visual studio 
12.0\vc\include\istream(1047) : see declaration of 'std::operator >>' 

1>   c:\program files (x86)\microsoft visual studio 
12.0\vc\include\istream(1047) : see declaration of 'std::operator >>' 

1>   c:\program files (x86)\microsoft visual studio 
12.0\vc\include\istream(1047) : see declaration of 'std::operator >>' 

1>   c:\program files (x86)\microsoft visual studio 
12.0\vc\include\istream(1006) : see declaration of 'std::operator >>' 

1>   c:\program files (x86)\microsoft visual studio 
12.0\vc\include\istream(1006) : see declaration of 'std::operator >>' 

1>   c:\program files (x86)\microsoft visual studio 
12.0\vc\include\istream(1006) : see declaration of 'std::operator >>' 

1>   c:\program files (x86)\microsoft visual studio 
12.0\vc\include\istream(1006) : see declaration of 'std::operator >>' 

1>   c:\program files (x86)\microsoft visual studio 
12.0\vc\include\istream(1006) : see declaration of 'std::operator >>' 

1>filepath(198): error C2047: illegal default 

1>filepath(203): error C2059: syntax error : ';' 

1>filepath(205): error C2059: syntax error : 'while' 

1>filepath(208): error C2447: '{' : missing function header (old-style formal 
list?) 

1>filepath(216): error C4430: missing type specifier - int assumed. Note: C++ 
does not support default-int 

1>filepath(216): error C2365: 'system' : redefinition; previous definition was 
'function' 

1>   c:\program files (x86)\microsoft visual studio 
12.0\vc\include\stdlib.h(560) : see declaration of 'system' 

1>filepath(216): error C2440: 'initializing' : cannot convert from 'const char 
[6]' to 'int' 

1>   There is no context in which this conversion is possible 

1>filepath(217): error C2059: syntax error : 'return' 

1>filepath(218): error C2059: syntax error : '}' 

1>filepath(218): error C2143: syntax error : missing ';' before '}' 

========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== 

//This program is to keep track of book entries at a book store 
#include <iostream> 
#include <string> 
#include <stdlib.h> 
#include <fstream> 
using namespace std; 
int main() 
{ 
string NAME; 
char var; 
string booklist[100]; 
string output; 

var = '1'; //These are the usuable variables 
var = '2'; 
var = '3'; 
var = '4'; 
var = '5'; 
var = '6'; 


cout << "What is your name?" << endl; //This wasn't necessary but I felt that asking for your name made it more friendly. 
getline(cin, NAME, '\n'); 

cout << "Welcome " << NAME << ", I hope this program greately benefits you! \n" << endl; 

struct bookList //Structure for all arrays 
{ 
    int ISBN;  //Book ISBN number 
    string Author; //Book Author 
    string Title; //Book Title 
    int Quantity; //Book Quantity 
    double Price; //Book Price 
}; 

// do loop execution 
do 
{ 
    cout << "Please select an operation: \n \n \n"; 
    cout << "1: Read inventory from file \n \n"; 
    cout << "2: Add an entry \n \n"; 
    cout << "3: Delete an entry \n \n"; 
    cout << "4: Update an entry \n \n"; 
    cout << "5: Sort inventory \n \n"; 
    cout << "6: Write inventory to file and exit \n \n"; 
    cin >> var; 
    switch (var) 
    { 
    case 1: 
    { //Case 1 will read the inventory from inventory.dat 
     ofstream bookList; 
     bookList.open("inventory.dat"); 
     void printArray(); 
     cout << endl; 
     bookList.close(); 
    } 
    break; 
    case 2: 
    { //Case 2 asks for infomation from the user to store into the array. It then sorts the information and also checks if the array is full. 
     int i; 
     int ISBN; 
     string Author; 
     string Title; 
     int Quantity; 
     double Price; 
     double MAX_SIZE = 100; 
     ofstream bookList; 

     do (int i = 0; i < MAX_SIZE; i++) 
     { 
      cout << "Here you can add a book to the database.\n\n" << endl; 
      cout << "Please enter the ISBN number.\n" endl; 
      cin >> bookList[i].ISBN << endl; 
      cout << "Please enter the name of the Author\n"; 
      cin >> bookList[i].Author << endl; 
      cout << "Please enter the name of the title\n"; 
      cin >> bookList[i].Title << endl; 
      cout << "Please enter the Quantity\n"; 
      cin >> bookList[i].Quantity << endl; 
      cout << "Please enter the Price of the book\n"; 
      cin >> bookList[i].Price << endl; 
      while (i > !MAX_SIZE) 
      { 
       cout << "Error: There is no more room to add entries. You will now be returned to the main menu." << endl; 
      } 
     }; 
     return 0; 
    } 
    break; 
    case 3: 
    { //3 deletes an entry by moving the other entries below the selected one and then decreases the array size by one. 
     int number; 
     cout << "You are about to delete an entry.\n\n" << "Please enter the number of the entry you'd like to remove.\n"; 
     cin >> number; 
     delete[number]; 
     number = nullptr; 
    } 
    break; 
    case 4: 
    { //4 is updating the quantitiy of an entry in the array. 
     int i; 
     char var; 
     int ISBN; 
     string Author; 
     string Title; 
     int Quantity; 
     double Price; 
     ofstream bookList; 

     var = 0; 
     var = 1; 
     var = 2; 
     var = 3; 

     cout << "Here you can update the Quantity of a book that you have stored in the database.\n\n" << "Please enter the ISBN number of the entry you'd like to update.\n"; 
     cin >> i; 
     cout << "Would you like to increase, decrease, or type the Quantity?\n\n" << "Type :\n" << "  1 to increase the value by one.\n"; 
     cout << "  2 to decrease the value by one.\n" << "  3 to enter a new value.\n" << "  0 to return to the main menu\n"; 
     cin >> var; 

     do 
     { 
      switch (var) 
      { 
      case 1: 
      { //1 will increase the value by one. 
       if (bookList[i].ISBN == i) 
       { 
        bookList[i].Quantity++ << endl; 
       } 
      } 
      break; 
      case 2: 
      { //2 will decrease the value by one. 
       if (bookList[ISBN] == i) 
       { 
        bookList[i].Quantity-- << endl; 
       } 
      } 
      break; 
      case 3: 
      { //3 will allow you to enter an entirely new number. 
       if (bookList[ISBN] == i) 
       { 
        cout << "You currently have " << Quantity << " .\n" << "Please enter the updated Quantity\n"; 
        cin >> bookList[i].Quantity << endl; 
        cout << "Your new Quantity is " << bookList[i].Quantity << ".\n" << endl; 
       } 
      } 
      break; 
      default: 
      { 
       cout << "Please enter a number between 1 and 3.\n"; 
      } 
      break; 
      } 
     } while (var != 0) 
     { 
      return 0; 
     } 

    } 
    break; 
    case 5: 
    { //Case 5 is to just sort the array by title 
     int ISBN; 
     string Author; 
     string Title; 
     int Quantity; 
     double Price; 
     int input 

     do 
     { 
      cout << "To search by title, press 1.\n"; 
      cin >> input 
      binarySearch(Title); 
      cout << "The database is now sorted by title."; 
     } while (input != 0) 
     { 
      return 0; 
     } 

    } 
    break; 
    case 6: 
    { //Case 6 outputs text and exits the program. 
     ofstream bookList; 
     bookList.open("inventory.dat"); 
     bookList >> output; 
     cout << output; 
     bookList.close(); 
     exit(0); 
    } 
    break; 
    default: 
    { 
     cout << "Please enter a number between 1 and 6.\n"; 
    } 
    break; 
    }; 

} while (var != 6); 

void printArray(int arr[], int size); 
{ 
    for (int i = 0; i < MAX_SIZE; i++) 
    { 
     cout << bookList[i] << ' '; 
    } 
    cout << endl; 
} 

system("pause"); 
return 0;} 
+0

爲什麼你在'main'聲明結構?嘗試將它移到'main'上方。 –

+0

你正在'main'函數中聲明一個函數:'printArray'。在'main'函數之前移動它。 –

+0

你'printArray'函數收到一個未使用的變量'arr'。該函數使用'booklist',它不在函數內部定義,也不作爲參數傳遞。該函數還傳遞了一個未使用的參數'size'。 –

回答

1

下面是一些免費贈品的代碼,讓你開始:

book.hpp:

class Book 
{ 
    public: 
    // empty or default constructor. 
    Book() 
    { } 

    // A constructor 
    Book(const std::string& new_title, 
     const std::string& new_author, 
     const std::string& new_isbn, 
     double new_price) 
    : Title(new_title), 
     Author(new_author), 
     ISBN(new_isbn), 
     Price(new_price) 
    { } 

    void input_from_user(void); 

    friend std::ostream& operator<<(std::ostream& out, const Book& b); 


    private: 
    string ISBN;  //Book ISBN number 
    string Author; //Book Author 
    string Title; //Book Title 
    double Price; //Book Price 
}; 

book.cpp:

ostream& operator<<(ostream& out, const Book& b) 
{ 
    out << b.Title << "," 
     << b.Author << "," 
     << b.ISBN << "," 
     << b.Price << "\n"; 
} 

void 
Book :: 
input_from_user(void) 
{ 
    cout << "Enter book title:\n"; 
    getline(cin, Title); 
    cout << "Enter book author:\n"; 
    getline(cin, Author); 
    cout << "Enter ISBN:\n"; 
    getline(cin, ISBN); 
    cout << "Enter price: "; 
    cin >> Price; 
} 

的main.cpp :

#include "book.hpp" 

int main(void) 
{ 
    Book b; 
    b.input_from_user(); 
    cout << "\nThe book data, in CSV format:\n"; 
    cout << b; 
    return EXIT_SUCCESS; 
}