Ich habe versucht, dies für eine Weile zu lösen, und es scheint, dass alles, was ich versuche, es noch schlimmer gemacht hat. Ich entwerfe ein Programm, das eine Eingabedatei liest, Berechnungen durchführt und in eine Ausgabedatei druckt. (Es ist ein Grad Rechner der Art) Im Moment versuche ich nur, um es den Namen und die ID-Nummer in der Ausgabe für jede Zeile in der Eingabe anzuzeigen.Programm druckt keine Teile in Ausgabedatei C++
#include <iostream>
#include <fstream>
#include <cstring>
#include <sstream>
using namespace std;
float printRecord (char name[20], char Id[20], ostream& outfile)
{
outfile << name << " " << Id << endl;
return 0;
}
int main()
{
ofstream outfile;
ifstream infile;
std::string line;
char file_nameI[21], file_nameO[21], name[20], Id[20];
float hworkgrade, grade1;
int deductions;
cout << "Please enter name of input file: ";
cin >> file_nameI;
infile.open(file_nameI);
if (!infile)
{
cout << "Could not open input file \n";
return 0;
}
cout << "Please enter name of output file: ";
cin >> file_nameO;
infile.open(file_nameO);
if (!outfile)
{
cout << "Could not open output file \n";
return 0;
}
while (getline (infile, line))
{
istringstream iss(line);
iss >> name >> Id;
cout<< name << " " << Id;
printRecord(name, Id, outfile);
cin.ignore();
}
return 0;
}
Hier ist der Eingang
Truman, Tod 12388671 100 100 100
Seger,John 67894 100 100 100 100
Victoire,Susan 938442 0 0 0
Kodak,James 554668 101 100 100
Frence,Lauren 602983 -1 100 100
Hanz, Franz 58027201 100 100 100
Laufeson,Loki 7920100 34 59 24
Hier ist die Ausgabe:
12388671
Seger,John 67894
Victoire,Susan 938442
Kodak,James 554668
Frence,Lauren 602983
58027201
Laufeson,Loki 7920100
Es überspringt die ersten und sechsten Namen.
Ich habe versucht, die Variablen auf String-Variablen zu ändern, um die Reihenfolge der Schleife zu ändern, die Einstellung der Name der Variablen zwei (erste und letzte)
Jede Hilfe sehr
Gibt es Gründe, warum Sie nicht verwenden 'std :: string' im Gegensatz zu' char XYZ [xx] '? – WhiZTiM
Schließen Sie Ihre Datei nach dem Schreiben darauf. – Sedrick
Das richtige Werkzeug, um solche Probleme zu lösen, ist Ihr Debugger. Sie sollten Schritt für Schritt durch Ihren Code * gehen, bevor Sie auf Stack Overflow nachfragen. Für weitere Hilfe lesen Sie bitte [Wie kleine Programme zu debuggen (von Eric Lippert)] (https://ericlippert.com/2014/03/05/how-to-debug-small-programs/). Zumindest sollten Sie Ihre Frage bearbeiten, um ein [minimales, vollständiges und verifizierbares] (http://stackoverflow.com/help/mcve) Beispiel einzufügen, das Ihr Problem zusammen mit den Beobachtungen, die Sie in der Debugger. –