2010-04-20 3 views
1

quelqu'un pourrait me dire aussi si les actions que je tente de faire qui sont énoncées dans les commentaires sont correctes ou non. Je suis nouveau à C++ et je pense que son correct, mais je douteerreur fatale C1075: fin de fichier trouvé avant l'accolade gauche et lire et écrire des fichiers ne fonctionne pas

#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; 


} 
+0

Ceci est entièrement trop de code. Vous devez également corriger votre indentation. Je soupçonne qu'il vous manque quelque part, mais c'est difficile à dire parce que votre code n'a pas de structure raisonnable. –

+0

copie de http://stackoverflow.com/questions/2672367/three-of-five-file-streams-wont-open-i-believe-its-a-problem-with-my-ifstrea même code –

+2

This est un bon exemple de pourquoi indenter correctement votre code est si important. –

Répondre

7

Je aurait une supposition que vous êtes absent « } » dans le premier bloc d'autre. Pour éviter de tels problèmes dans l'avenir, corrigez votre indentation (ou laissez AStyle ou un programme similaire le corriger pour vous) et utilisez un éditeur qui met en évidence la syntaxe (en particulier les blocs de code entre accolades).

+0

Je ne comprends pas comment réparer mon indentation. Je pensais que c'était juste après avoir vérifié pour s'assurer que les fichiers s'ouvrent. dois-je ouvrir le fichier ou mettre le nom de fichier avant de faire le code pour le fichier spécifique.on le mien je n'ai pas mis le nom de fichier avant – user320950

+0

Je ne parle pas de logique dans votre code. Indentation = le nombre d'espaces au début de chaque ligne de code = l'apparence de votre code. Si vous utilisez des règles d'indentation claires et cohérentes, il est très facile d'intercepter des erreurs telles que l'accolade manquante dans le bloc else (ce qui provoque une erreur de compilation dans le code que vous avez publié). Vérifiez http://en.wikipedia.org/wiki/Indent_style pour quelques normes d'indentation largement utilisées (je préfère celle appelée "variante 1TBS"). Peu importe celui que vous choisissez, tant que vous y adhérez dans tout le code que vous écrivez. – chalup

+0

ok merci j'ai enlevé les vérifications d'erreurs parce qu'elles causaient les erreurs. Est-ce que tu sais pourquoi? – user320950

1

Votre première instruction if else a un} manquant après le {pour votre else. Ma suggestion: se débarrasser de la {puisque c'est seulement une seule ligne de code.

0

Il se peut que vous manquiez "}" à la fin, une autre chose importante que vous devriez prendre garde est d'essayer d'utiliser l'adresse complète de vos fichiers. J'ai rencontré le même problème, et différents compilateurs liraient des adresses de différentes manières. Alors essayez de clarifier l'adresse des fichiers.

Questions connexes