前提・実現したいこと
ここに質問の内容を詳しく書いてください。
ビジュアルスタジオをつかってC++の課題をしているのですが、
coutで文字入力を行った直後ディバックがなぜか終了してしまいます。
このプログラムは、2つの数字を入れて頂いて、その一つ目を二進数で表すものなのですが、2つ目の数字をいれた途端にディバックが終了し、2進数が表示されません。
色々試しましたがプログラミングに不慣れなせいもあり、まったく原因がわかりません。
教えて頂けると幸いです。
よろしくお願い致します。
発生している問題・エラーメッセージ
なし
該当のソースコード
C++
1#include <iostream> 2#include <iomanip> 3#include <cmath> 4#include <string> 5using namespace std; 6int binary(int bina) { 7 int ans = 0; 8 for (int i = 0; bina > 0; i++) 9 { 10 ans = ans + (bina % 2)*pow(10, i); 11 bina = bina / 2; 12 } 13 return ans; 14} 15int main() { 16 long long LocInt3; 17 long long unsigned LocInt1; 18 cout << endl << endl; 19 cout << endl << "\tいくつかの数字を入力してください: "; 20 while (!(cin >> LocInt3)) { 21 cout << "\t正しくないです: "; 22 cin.clear(); 23 cin.ignore(256, '\n'); 24 } 25 if (LocInt3 < 0L) { 26 LocInt1 = LocInt3 * -1L; 27 cout << "\tマイナスが入力されました; プラスにへんこうします: " << LocInt1 << endl << endl; 28 } 29 else { 30 LocInt1 = LocInt3; 31 cout << "\tあなたが入力した数字は: " << LocInt1 << endl << endl; 32 } 33 34 long long LocInt2; 35 long long unsigned LocInt4; 36 cout << endl << endl; 37 cout << endl << "\tEnter an second unsigned integer: "; 38 while (!(cin >> LocInt2 ) || LocInt2 <LocInt1) { 39 if(LocInt2 < LocInt1){ 40 cout << "\t1回目よりも大きな数字にして下さい: "; 41 } 42 else { 43 cout << "\t正しくないです; reenter: "; 44 } 45 cin.clear(); 46 cin.ignore(256, '\n'); 47 } 48 if (LocInt2 < 0L) { 49 LocInt4 = LocInt2 * -1L; 50 cout << "\tマイナスが入力されました; プラスにへんこうします: " << LocInt4 << endl << endl; 51 } 52 else { 53 LocInt4 = LocInt2; 54 cout << "\tあなたが入力した数字は: " << LocInt4 << endl << endl; 55 56 } 57 58 59 cout << "First Integer"; 60 cout << "2進数に変換した数値は:" << binary(LocInt1) << endl; 61 return 0; 62
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。