4行の入力テキストファイルがあり、各行は固定長80文字です。すべてのカンマをスペースで置き換えたい私は以下のコードを書いて、Code :: Blocks IDEでコンパイルして実行します。問題は、出力ファイルに余分な行が含まれていることです。間違いを修正するのを手伝ってください。私はC++の初心者です。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、このSOの質問への答えを見てみましょう。 http://stackoverflow.com/questions/42571529/how-to-count-the-number-of-lines-in-a-file-using-c。あなたが同じ状況に遭遇したように見えます。 –
@Antony:getline()を2回呼び出すので – androidFan