[解決済み] どうすれば修正できますか? libc++abi.dylib: terminating with uncaught exception of type std::invalid_argument: stoi: no conversion
2022-02-04 05:27:52
質問
#define REP(i,a,b) for(int i = a; i < b; i++)
#define FOR(i,n) REP(i,0,n)
#include<iostream>
#include<algorithm>
#include<stdio.h>
#include<string>
using namespace std;
以下の関数は、2つの大きな整数を文字列方式でまとめる関数である。入力はlong long intの制限値より大きくてもよい。
string string_add(string a, string b) {
string new_str = "";
reverse(a.begin(), a.end());
reverse(b.begin(), b.end());
string long_s;
string short_s;
if (a.size() >= b.size()) {
long_s = a;
short_s = b;
}
else{
long_s = b;
short_s = a;
}
int carry = 0;
int dif = long_s.size() - short_s.size();
FOR(i, dif)
short_s += "0";
FOR(i, long_s.size()) {
int hab = stoi(long_s.substr(i, 1)) + stoi(short_s.substr(i, 1)) + carry;
if (hab > 9) {
carry = 1;
hab -= 10;
}
else carry = 0;
new_str += to_string(hab);
}
if (carry != 0) new_str += to_string(carry);
reverse(new_str.begin(), new_str.end());
return new_str;
}
そして以下がメイン部分です。
int main() {
while(!cin.eof()){
int n;
string dp[251];
cin >> n;
dp[0] = 1;
dp[1] = 1;
REP(i,2,n)
dp[i] = string_add(string_add(dp[i-2], dp[i-2]), dp[i-1]);
cout << dp[n];
}
return 0;
}
このエラーはどうすれば直りますか?stoi'の入力に問題があると思うのですが、どうすれば直るのかわかりません。助けてください。
解決方法を教えてください。
から 参照 :
例外: std::invalid_argument 変換ができなかった場合
操作している文字列のうち1つは整数に変換できないようで、そのため
stoi
が例外を投げています。 一般に、呼び出す関数のすべての失敗モードについて知っておくことはよい考えです。この場合、プログラムロジックのどこかでこの例外をキャッチして対処することになります。
stoi
は常に変換可能である必要があります。)
関連
-
[解決済み】C++エラー。アーキテクチャ x86_64 に対して未定義のシンボル
-
[解決済み】C++ クラスヘッダが含まれているときに「不明な型」があるのはなぜですか?重複
-
[解決済み】Visual Studio 2015で「非標準の構文。'&'を使用してメンバーへのポインターを作成します」エラー
-
[解決済み】C++エラーです。"配列は中括弧で囲まれたイニシャライザーで初期化する必要がある"
-
[解決済み】C++ 式はポインタからオブジェクトへの型を持っている必要があります。
-
[解決済み】「corrupted size vs. prev_size」glibc エラーを理解する。
-
[解決済み】'cout'は型名ではない
-
[解決済み】C++プログラムでのコンソールの一時停止
-
[解決済み] 非静的データメンバの無効な使用
-
[解決済み】エラー。引数リストに一致するコンストラクタのインスタンスがない
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C++エラー。アーキテクチャ x86_64 に対して未定義のシンボル
-
[解決済み】Visual Studio 2015で「非標準の構文; '&'を使用してメンバーへのポインターを作成します」エラー
-
[解決済み] [Solved] Error C1083: Cannot open include file: 'stdafx.h'
-
[解決済み] error: 'ostream' does not name a type.
-
[解決済み] クラスにデフォルトコンストラクタが存在しない。
-
[解決済み】エラー:不完全な型へのメンバーアクセス:前方宣言の
-
[解決済み】1つ以上の多重定義されたシンボルが見つかる
-
[解決済み】システムが指定されたファイルを見つけられませんでした。
-
[解決済み】変数やフィールドがvoid宣言されている
-
[解決済み] スタックアロケーションにより初期化されていない値が作成された