我试图用C++控制台创建一个基本的“登录”系统。使用PHP来确认用户信息,C++将简单地检索PHP文件输出的数据。读取文件时在线计算文件的字节数
我需要C++代码来在线读取文件末尾并停止。我正在使用的代码在文件末尾计算额外的字节数。
INT主要(){
HINTERNET connect = InternetOpenA("LoginCheckUserAgent 0.0.1v (compatible; harmless;)", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
if (!connect){
cout << "Connection Failed or Syntax error";
return 0;
}
HINTERNET OpenAddress = InternetOpenUrlA(connect, "http://localhost/login/check.php?username=admin&password=admin", NULL, 0, INTERNET_FLAG_PRAGMA_NOCACHE | INTERNET_FLAG_KEEP_CONNECTION, 0);
if (!OpenAddress)
{
DWORD ErrorNum = GetLastError();
cout << "Failed to open URL \nError No: " << ErrorNum;
InternetCloseHandle(connect);
return 0;
}
char DataReceived[4096];
DWORD NumberOfBytesRead = 0;
while (InternetReadFile(OpenAddress, DataReceived, 4096, &NumberOfBytesRead) && NumberOfBytesRead)
{
cout << DataReceived;
}
InternetCloseHandle(OpenAddress);
InternetCloseHandle(connect);
cin.get();
return 0;
}
上面的代码给我:ABC123 |||||||||||等。(直到达到4096个字节) 我想让它给我:abc123 我需要阅读“http://localhost/login/check.php?username=admin&password=admin”的内容,没有额外的字节。我提供的代码尝试读取4096个字节。
我知道我可以只设置4096为1或者什么的,只能用PHP来回复1个字节。但我希望PHP脚本能够随时改变数据,所以我不能仅仅假设我要处理的字节数。
我不需要任何人来修复代码,我只是想知道如何才能确定我要读取的字节,然后让我的脚本将它读到这些字节的末尾。所以我不会收到不需要的字节。
对不起如果我做了任何混淆。
你觉得'NumberOfBytesRead'存储? – 2015-02-24 01:07:18