前提
テンプレートを勉強して、簡単な足し算ができるコードを書いてみました。
二つのデータタイプと計算したい二つの値を入力して、一つ目のデータタイプのところで-1を入力するとwhileから抜け出す。と言うようなコードを完成させたいです。
ただ、『-1を入力するとwhileから抜け出す』
ここのインプットをどのように書いていいかわからず、永遠にwhileループから抜け出せないコードになってしまいました。
実現したいこと
data_type1に-1をインプットして、ループから抜け出したい。
該当のソースコード
C++
1#include<iostream> 2using namespace std; 3 4 5template <typename T> 6T add (T x, T y); 7 8template <typename T> 9T add (T x, T y){ 10 return (x + y); 11} 12 13 14 15int main() { 16 double x,y; 17 char data_type1[55]; 18 char data_type2[55]; 19 while(cin>>data_type1>>x>>data_type2>>y) { 20 21 cout << "Sum: " << add<double>(x,y) << endl; 22 23 } 24 25 return 0; 26} 27 28 29 30 31 32 33 34
試したこと
C++
1 while(cin>>data_type1) { 2 if(data_type1!="-1"){ 3 cin>>x>>data_type2>>y; 4 cout << "Sum: " << add<double>(x,y) << endl; 5} 6 else 7 break; 8 }
while文のインプットのところを一つ目のデータタイプの配列のみにして、その配列が-1だった場合は、一つ目の値から二つの値まで入力しないと言うようなコードになるように書いてみたのですが、-1を入力してもwhileから抜け出せません。
補足情報(FW/ツールのバージョンなど)
インプットの例は
int 4 float 6.1
アウトプット例は
Sum: 10.1
また、-1をインプットした場合は何もアウトプットされません。

回答3件
あなたの回答
tips
プレビュー