C++输入都是数字输出1否则输出0

int flag = 1;//标记是否遇到了除数字以外的字符
for (int i = 0; i < str.length(); i++) {
    if (!isdigit(str[i])) {
        flag = 0;//输入含有除数字以外的字符,flag的值发生改变
        break;
    }
}
return flag;



int flag=0;
string str;
printf("%s",&str);
isnum(str);
if(flag=1)
 printf("1");
if(flag=0)
 printf("0"); 

#include<iostream>
#include<string>
using namespace std;
int isnum(string str) {
    int flag = 1;//标记是否遇到了除数字以外的字符
    for (int i = 0; i < str.length(); i++) {
        if (str[i]>='0'&&str[i]<='9') {
            flag = 0;//输入含有除数字以外的字符,flag的值发生改变
            break;
        }
    }
    return flag;
}

void main() {
    int flag = 0;
    string str;
    cin >> str;
    flag=isnum(str);
    if (flag == 1)
        cout<< '1' <<endl;
    if (flag == 0)
        cout << '0'<<endl;
}