以前にも同様のコードを投稿しましたが、これは別の問題だと思います。実行コードが「infile open」を超えない理由がわかりません。("-e" は出力しますが、"-d" は出力しません) ファイルを開こうとしています。コマンド ライン オプションを使用して、特定の倍数の文字を出力するかどうかを判断します。
たとえば、a.out -d 2 < sample.txtは 2 文字おきに出力します。
int main (int argc, char *argv[])
{
ifstream infile;
if (infile.good())
printf("infile open \n");
int c;
int number = 0;
int count = 0;
string str1 = argv[1];
string str2 = "-d";
string str3 = "-e";
if (str1.compare(str2) == 0)
{
printf("entered -d\n");
c = infile.get();
while(!infile.eof()) {
number = atoi(argv[2]);
if (count == number)
{
cout.put(c);
count = 0;
}
else
count++;
c = infile.get();
}//end while
}//end if
if (str1.compare(str3) == 0)
printf("entered -e\n");
}//end main