数字を入力するまで、ユーザーからの文字入力を取得する必要があります。最後に入力したユーザー数も必要です。 数字を入力するまでユーザーからの入力を取得
#include <iostream>
using namespace std;
int fun() {
char c;
while(1) {
if(cin>>c == 1) { //To check if we are still getting input
if(isdigit(c)) { //If a number is found return to the main function
return c-48; //Char converted to Int
}
}
else {
break;
}
}
return c-48;
}
int main() {
int a = fun();
cout<<a;
return 0;
}
は今
ahd qer 12 32
などの入力のために、それは私がそれを与えるだろう知っている
1
として出力を提供します。私が出力したいものは
12
です。どうやってするか?主な機能にもいくつかの変更を加えることができます。私は最終的に変数
a
に格納されている番号が欲しいです。
SOLUTION
#include <iostream>
using namespace std;
int fun() {
string c;
while(cin>>c) {
if(isdigit(c[0]))
return stoi(c);
}
}
int main() {
int a = fun();
cout<<a<<" ";
return 0;
}
@Gyanshu何についての特殊文字(例えば '#'/'' $ /等。)?文字が数字を表しているかどうか知りたいのであれば、少なくともあなたは 'isdigit'を使っていませんか? –
少なくともCの(署名された)charを 'isdigit'に渡すことは未定義の動作です(そして' #include 'が必要です)。 –
melpomene
私はそれを 'isdigit'と置き換えます。しかしそれはまた私に数字の最初の数字だけを与えます。整数を得る方法はありますか? – Gyanshu