while文とsystemの組合せ
Posted: 2015年12月03日(木) 15:16
ifstream ifs("ls_data.txt");
string str;
char buff[200];
int count=0;
while(getline(ifs,str)){
sprintf(buff,"g++ point.cpp & ./a data/%s data_tra.txt data_tra_check.txt",str.c_str());
system(buff);
Sleep(2000);
cout<<count<<" "<<str.c_str()<<endl;
count++;
if(count==10){break;}
}
dataというサブディレクトリの中にあるファイル名をls_data.txtに書き出してあり, その名前をひとつづつ読み込み, point.cppというプログラムに入力し,
data_tra.txtにその結果を出力, data_tra_check.txtに読み込んだファイル名を書きだしています.
ところが, ファイルの読み込みが終了したのにも関わらず, while文が終了せず, countは0, 1, 2, …, 9, 0, 1, 2, ...,9, 0,...と繰り返します.
system(buff)を消したところ, while文は正常に終了することができました.
while文とsystem関数は同時に用いることができないのでしょうか, 良い方法があったら教えて欲しいです.
string str;
char buff[200];
int count=0;
while(getline(ifs,str)){
sprintf(buff,"g++ point.cpp & ./a data/%s data_tra.txt data_tra_check.txt",str.c_str());
system(buff);
Sleep(2000);
cout<<count<<" "<<str.c_str()<<endl;
count++;
if(count==10){break;}
}
dataというサブディレクトリの中にあるファイル名をls_data.txtに書き出してあり, その名前をひとつづつ読み込み, point.cppというプログラムに入力し,
data_tra.txtにその結果を出力, data_tra_check.txtに読み込んだファイル名を書きだしています.
ところが, ファイルの読み込みが終了したのにも関わらず, while文が終了せず, countは0, 1, 2, …, 9, 0, 1, 2, ...,9, 0,...と繰り返します.
system(buff)を消したところ, while文は正常に終了することができました.
while文とsystem関数は同時に用いることができないのでしょうか, 良い方法があったら教えて欲しいです.