Linux のパイプに問題があります。パイピング後にスペース文字が失われたようです。次のC++
コードを実行する
#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
int main(){
char s[] = "ab cd", c;
int n = strlen(s);
for(int i = 0; i<n && (cin >> c); i++)
if(s[i] != c){
printf("wrong at %d : '%c' != '%c' \n", i, s[i], c);
break;
}
return 0;
}
から
echo "ab cd" | ./checker
シェルコマンドが与える
wrong at 2 : ' ' != 'c'
それは正常な動作ですか?パイプで文字が失われないようにするには?