Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/160.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++;,在int数组中输入字符串或字符将输出0,而不是ascii或错误 我已经在VisualStudioC++中测试了这段代码。_C++_Arrays - Fatal编程技术网

C++;,在int数组中输入字符串或字符将输出0,而不是ascii或错误 我已经在VisualStudioC++中测试了这段代码。

C++;,在int数组中输入字符串或字符将输出0,而不是ascii或错误 我已经在VisualStudioC++中测试了这段代码。,c++,arrays,C++,Arrays,奇怪的是,如果我先输入任何字符,程序就会停止并输出0,我本以为是ASCII码或错误,但结果却是0。原因是什么 int x[10]; int s; cin >> s; for (int i = 0; i < s; i++){ cin >> x[i]; } cout << x[0]; intx[10];int-s; cin>>s; 对于(int i=0;i>x[i]; } cout您应该检查读取是否成功

奇怪的是,如果我先输入任何字符,程序就会停止并输出0,我本以为是ASCII码或错误,但结果却是0。原因是什么

int x[10];  int s;
    cin >> s;

    for (int i = 0; i < s; i++){
        cin >> x[i]; 
    }
    cout << x[0];
intx[10];int-s;
cin>>s;
对于(int i=0;i>x[i];
}

cout您应该检查读取是否成功:

int x[10];  int s;
if (!(cin >> s)) {
    cout << "Read failed\n";
    return;
}

int i = 0;
for (; i < s && cin >> x[i]; i++){
}
cout << "successful reads: " << i << '\n';
if (i > 0) {
    cout << x[0];
}
intx[10];int-s;
如果(!(cin>>s)){
cout>x[i];i++){
}

原因是因为“X”不是一个有效的数字。@idclev463035818我不知道。谢谢!如果您想要ASCII码,您应该使用带有字符的
cin
,而不是int。然后它将被读取为字符。除非您明确要求,否则程序不会给您任何ASCII码,因为否则,如果程序给您数字65,您将无法使用说明用户是否输入了数字65或字母“A”(ASCII代码65)。