问题
could someone also tell me if the actions i am attempting to do which are stated in the comments are correct or not. i am new at c++ and i think its correct but i have doubts
#include<iostream>
#include<fstream>
#include<cstdlib>
#include<iomanip>
using namespace std;
int main()
{
ifstream in_stream; // reads itemlist.txt
ofstream out_stream1; // writes in items.txt
ifstream in_stream2; // reads pricelist.txt
ofstream out_stream3;// writes in plist.txt
ifstream in_stream4;// read recipt.txt
ofstream out_stream5;// write display.txt
float price=' ',curr_total=0.0;
int wrong=0;
int itemnum=' ';
char next;
in_stream.open("ITEMLIST.txt", ios::in); // list of avaliable items
if( in_stream.fail() )// check to see if itemlist.txt is open
{
wrong++;
cout << " the error occured here0, you have " << wrong++ << " errors" << endl;
cout << "Error opening the file\n" << endl;
exit(1);
}
else{
cout << " System ran correctly " << endl;
out_stream1.open("listWititems.txt", ios::out); // list of avaliable items
if(out_stream1.fail() )// check to see if itemlist.txt is open
{
wrong++;
cout << " the error occured here1, you have " << wrong++ << " errors" << endl;
cout << "Error opening the file\n";
exit(1);
}
else{
cout << " System ran correctly " << endl;
}
in_stream2.open("PRICELIST.txt", ios::in);
if( in_stream2.fail() )
{
wrong++;
cout << " the error occured here2, you have " << wrong++ << " errors" << endl;
cout << "Error opening the file\n";
exit (1);
}
else{
cout << " System ran correctly " << endl;
}
out_stream3.open("listWitdollars.txt", ios::out);
if(out_stream3.fail() )
{
wrong++;
cout << " the error occured here3, you have " << wrong++ << " errors" << endl;
cout << "Error opening the file\n";
exit (1);
}
else{
cout << " System ran correctly " << endl;
}
in_stream4.open("display.txt", ios::in);
if( in_stream4.fail() )
{
wrong++;
cout << " the error occured here4, you have " << wrong++ << " errors" << endl;
cout << "Error opening the file\n";
exit (1);
}
else{
cout << " System ran correctly " << endl;
}
out_stream5.open("showitems.txt", ios::out);
if( out_stream5.fail() )
{
wrong++;
cout << " the error occured here5, you have " << wrong++ << " errors" << endl;
cout << "Error opening the file\n";
exit (1);
}
else{
cout << " System ran correctly " << endl;
}
in_stream.close(); // closing files.
out_stream1.close();
in_stream2.close();
out_stream3.close();
in_stream4.close();
out_stream5.close();
system("pause");
in_stream.setf(ios::fixed);
while(in_stream.eof())
{
in_stream >> itemnum;
cin.clear();
cin >> next;
}
out_stream1.setf(ios::fixed);
while (out_stream1.eof())
{
out_stream1 << itemnum;
cin.clear();
cin >> next;
}
in_stream2.setf(ios::fixed);
in_stream2.setf(ios::showpoint);
in_stream2.precision(2);
while((price== (price*1.00)) && (itemnum == (itemnum*1)))
{
while (in_stream2 >> itemnum >> price) // gets itemnum and price
{
while (in_stream2.eof()) // reads file to end of file
{
in_stream2 >> itemnum;
in_stream2 >> price;
price++;
curr_total= price++;
in_stream2 >> curr_total;
cin.clear(); // allows more reading
cin >> next;
}
}
}
out_stream3.setf(ios::fixed);
out_stream3.setf(ios::showpoint);
out_stream3.precision(2);
while((price== (price*1.00)) && (itemnum == (itemnum*1)))
{
while (out_stream3 << itemnum << price)
{
while (out_stream3.eof()) // reads file to end of file
{
out_stream3 << itemnum;
out_stream3 << price;
price++;
curr_total= price++;
out_stream3 << curr_total;
cin.clear(); // allows more reading
cin >> next;
}
return itemnum, price;
}
}
in_stream4.setf(ios::fixed);
in_stream4.setf(ios::showpoint);
in_stream4.precision(2);
while ( in_stream4.eof())
{
in_stream4 >> itemnum >> price >> curr_total;
cin.clear();
cin >> next;
}
out_stream5.setf(ios::fixed);
out_stream5.setf(ios::showpoint);
out_stream5.precision(2);
out_stream5 <<setw(5)<< " itemnum " <<setw(5)<<" price "<<setw(5)<<" curr_total " <<endl; // sends items and prices to receipt.txt
out_stream5 << setw(5) << itemnum << setw(5) <<price << setw(5)<< curr_total; // sends items and prices to receipt.txt
out_stream5 << " You have a total of " << wrong++ << " errors " << endl;
}
回答1:
I'd hazard a guess you're missing '}' in first else block.
To avoid such problems in the future, fix your indentation (or let AStyle or similar program fix it for you) and use editor that highlights the syntax (especially blocks of code between braces).
回答2:
Your first if else statement has a missing } after the { for your else. My suggestion: get rid of the { since it's only a single line of code.
回答3:
It could be that you miss "}" in the end, another important thing that you should beware is that try to use the full address of your files. I met the same problem, and different compiler would read adresses in different ways. So try to make clear the address of files.
来源:https://stackoverflow.com/questions/2672495/fatal-error-c1075-end-of-file-found-before-the-left-brace-and-read-and-write-fi