0

在这个 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
4

2 回答 2

2

cin.get()没有得到'\n'你输入的~

尝试使用,

string str;
getline(cin, str) 

代替cin.get()

或在getchar()之后添加cin.get()

于 2013-08-26T19:37:23.910 回答
0

由于您在 Windows 上:

#include <conio.h>

// .. your other stuff

_getch();

cin.get()将抓取输入缓冲区中的任何内容(如果您按下回车键,或者空格,或者在键盘上几乎呼吸,它将有一些东西),或者EOF如果什么都没有,所以它总是会返回。

于 2013-08-26T19:40:57.880 回答