Ich habe eine Eingabetextdatei von 4 Zeilen, jede Zeile hat 80 Zeichen feste Länge. Ich möchte jedes Komma durch ein Leerzeichen ersetzen. Ich habe Code wie folgt geschrieben geschrieben und kompiliert und in Code :: Blocks IDE ausgeführt. Das Problem ist, dass die Ausgabedatei eine zusätzliche Zeile enthält. Bitte helfen Sie mir, den Fehler zu korrigieren. Ich bin ein Anfänger in C++.Ersetzen Sie ein Zeichen in einer Datei mit C++
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
ifstream in("circArc.txt", ios::in | ios::binary);
if(!in)
{
cout << "Cannot open file";
return 1;
}
ofstream out("readInt.txt", ios::out | ios::binary);
if(!out)
{
cout << "Cannot open file";
return 1;
}
string str;
char rep[80]; //replace array
while(in)
{
getline(in,str);
for(int i=0; i<80; i++)
{
if(str[i] == ',')
rep[i] = ' ';
else
rep[i] = str[i];
out.put(rep[i]);
}
out << endl;
}
in.close();
out.close();
return 0;
}
@Antony, Werfen Sie einen Blick auf die Antwort auf diese Frage SO. http://stackoverflow.com/questions/42571529/how-to-count-the-number-of-lines-in-a-file-using-c. Es scheint, als ob Sie in dieselbe Situation geraten sind. –
@Antony: Weil Sie getline() zweimal aufrufen – androidFan