请给出一个C++程序，该程序能够接收两个整数作为输入，并输出这两个数的和。程序需要能够处理用户输入异常情况，比如输入非整数值或只输入一个值。请使用注释说明每一部分的功能。答案需以Markdown格式呈现。
user
```markdown
```cpp
#include <iostream>  // 引入输入输出流库
#include <limits>    // 引入极限定义库，用于处理输入流错误

int main() {
    int num1, num2;  // 声明两个整数变量用于存储用户输入的值

    std::cout << "请输入两个整数（使用空格分隔）: ";  // 提示用户输入两个整数
    while (true) {  // 创建无限循环以确保用户的输入有效
        if (std::cin >> num1 >> num2) {  // 尝试读取两个整数
            break;  // 如果成功读取了两个整数，则退出循环
        } else {  // 如果输入错误
            std::cout << "输入错误！请输入两个整数值。\n";  // 提示输入错误并要求重新输入
            std::cin.clear();  // 清除错误状态
            std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');  // 忽略错误输入直到下一个换行符
        }
    }

    int sum = num1 + num2;  // 计算两个整数的和
    std::cout << "两数之和为: " << sum << std::endl;  // 输出和

    return 0;  // 程序成功结束
}
```
```
assistant