如何解决win10系统频繁通知重复消息导致死循环的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何解决win10系统频繁通知重复消息导致死循环的问题相关的知识,希望对你有一定的参考价值。
参考技术AWin10系统频繁通知重复消息导致死循环的解决方法:
发现该问题是由于KB3135173所致。由此可知,微软对于默认应用的重置机制存在Bug。由于各位用户的系统情况各有不同,因此导致该问题的第三方程序也不同。出现问题时的“痉挛”是由于Win10在重置默认应用时出现了不顺利,而导致进入死循环“停不下来”。
出现类似问题的用户可先卸载KB3135173,或者导致该问题的最近安装的累积更新(针对还没有安装KB3135173的用户),“闪屏痉挛”问题解决后,可“安静地”卸载相关第三方应用,然后尝试再次安装该更新补丁,如果没问题可继续安装临时卸载的第三方应用。
以上就是汇总的关于Win10系统会频繁通知重复消息的解决方法。
C++——while循环误输入非数字(如字母,标点)导致死循环的解决方法
1 问题描述
要求输入一个正整数,并判断是否成功输入一个正整数,若成功输入,则程序结束;若输入的不是一个正整数,则提示用户输入错误,并要求用户重新输入一个正整数。直到用户成功输入一个正整数,程序结束。
当用户误输入一个非数字,可能会造成程序的死循环
2 出现死循环的原因
示例1( 错误❌ )
#include <iostream>
using namespace std;
int main()
{
int a;
cout << "请输入一个正整数:" << endl;
while (true)
{
cin >> a;
if (a > 0)
{
cout << "成功输入一个正整数!" << endl;
break;
}
else
{
cout << "输入错误,请重新请输入一个正整数:\\a" << endl;
}
}
return 0;
}
示例1的结果有三种情况:
- 成功输入一个正整数
请输入一个正整数:
1
成功输入一个正整数!
- 输入了一个非正数
请输入一个正整数:
-1
输入错误,请重新请输入一个正整数:
1
成功输入一个正整数
- 误输入一个非数字,如字母,程序进入死循环!
请输入一个正整数:
aa
输入错误,请重新请输入一个正整数:
输入错误,请重新请输入一个正整数:
输入错误,请重新请输入一个正整数:
输入错误,请重新请输入一个正整数:
输入错误,请重新请输入一个正整数:
输入错误,请重新请输入一个正整数:
输入错误,请重新请输入一个正整数:
输入错误,请重新请输入一个正整数:
输入错误,请重新请输入一个正整数:
输入错误,请重新请输入一个正整数:
输入错误,请重新请输入一个正整数:
输入错误,请重新请输入一个正整数:
输入错误,请重新请输入一个正整数:
...
...
cin 输入原理:
程序的输入都建有一个缓冲区,即输入缓冲区。一次输入过程是这样的,当一次键盘输入结束时会将输入的数据存入输入缓冲区,而cin函数直接从输入缓冲区中取数据。正因为cin函数是直接从缓冲区取数据的,所以有时候当缓冲区中有残留数据时,cin函数会直接取得这些残留数据而不会请求键盘输入。
int a =0; //a为整形数据,在输入非数字,如字符型数据时,按回车,cin 会认为 a 没有输入(非法输入),不会读取缓冲器中输入的内容;等下次再读取时,发现缓冲区有数据进行读取,因为仍是字符型数据,便还是认为 a 没有输入,不会读取缓冲器的字母;因此造成死循环。
3 解决方法
在while循环的最后面添加两条语句, 缺一不可
cin.clear();
cin.ignore();
其中cin.clear(),清空缓冲区,并将错误的cin流标识,通过这个可以把假状态清除掉;cin.ignore() 解决编译器编译while循环时因在缓冲区找不到合乎条件的数据而出现死循环的情况。
示例2( 正确✔)
#include <iostream>
using namespace std;
int main()
{
int a = 0;
cout << "请输入一个正整数:" << endl;
while (true)
{
cin >> a;
if (a > 0)
{
cout << "成功输入一个正整数" << endl;
break;
}
else
{
cout << "输入错误,请重新请输入一个正整数:\\a" << endl;
}
cin.clear();
cin.ignore();
}
return 0;
}
当用户输入一个非数字,如字符型时,程序仍具有稳健性
请输入一个正整数:
a
输入错误,请重新请输入一个正整数:
\\
输入错误,请重新请输入一个正整数:
25
成功输入一个正整数
以上是关于如何解决win10系统频繁通知重复消息导致死循环的问题的主要内容,如果未能解决你的问题,请参考以下文章