在这个for循环中cin.get();每隔一段时间都会被跳过。我不知道为什么会被跳过。任何帮助将不胜感激。
代码:
for(Pointer = StartPointer; Pointer < EndPointer; Pointer += MemInfo.RegionSize)
{
VirtualQueryEx(hProc, (LPCVOID)(Pointer), &MemInfo, sizeof(MemInfo));
cout << "MemInfo AllocationBase: " << MemInfo.AllocationBase << endl;
cout << "MemInfo AllocationProtect: " << MemInfo.AllocationProtect << endl;
cout << "MemInfo BaseAddress: " << MemInfo.BaseAddress << endl;
cout << "MemInfo Protect: " << MemInfo.Protect << endl;
cout << "MemInfo RegoinSize: " << MemInfo.RegionSize << endl;
cout << "MemInfo State: " << MemInfo.State << endl;
cout << "MemInfo Type: " << MemInfo.Type << endl;
cout << "MemInfo Size: " << sizeof(MemInfo) << endl;
cout << "Starter pointer is: " << StartPointer << endl;
cin.get();
}
cin.get();
之间的输出示例MemInfo AllocationBase: 00000000
MemInfo AllocationProtect: 0
MemInfo BaseAddress: 00000000
MemInfo Protect: 1
MemInfo RegoinSize: 65536
MemInfo State: 65536
MemInfo Type: 0
MemInfo Size: 28
Starter pointer is: 0
MemInfo AllocationBase: 00010000
MemInfo AllocationProtect: 4
MemInfo BaseAddress: 00010000
MemInfo Protect: 4
MemInfo RegoinSize: 65536
MemInfo State: 4096
MemInfo Type: 262144
MemInfo Size: 28
Starter pointer is: 0
答案 0 :(得分:2)
cin.get()
未获得您键入的'\n'
〜
尝试使用,
string str;
getline(cin, str)
而不是cin.get()
或在getchar()
cin.get()
答案 1 :(得分:0)
因为你在Windows上:
#include <conio.h>
// .. your other stuff
_getch();
cin.get()
将抓住输入缓冲区中的任何内容(如果你按下输入,空格,或者几乎在键盘上呼吸,它会有一些东西),或EOF
如果什么都没有,所以它总会回来。