fopen打开文件1.txt,写入内存buffer,然后_tcsstr进行数据比对,为什么总是失败?
1.txt内文件如下
KB3150513
KB3211320
KB4013418
KB4014329
KB4013429
/*源代码*/
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#pragma warning(disable:4996)
int main()
{
FILE * pFile;
long lSize;
LPTSTR buffer;
size_t result;
/* 若要一个byte不漏地读入整个文件,只能采用二进制方式打开 */
pFile = fopen("1.txt", "rb");
if (pFile == NULL)
{
fputs("File error", stderr);
exit(1);
} /* 获取文件大小 */
fseek(pFile, 0, SEEK_END);
lSize = ftell(pFile);
rewind(pFile); /* 分配内存存储整个文件 */
buffer = (LPTSTR)malloc(sizeof(LPTSTR)*lSize);
if (buffer == NULL)
{
fputs("Memory error", stderr);
exit(2);
} /* 将文件拷贝到buffer中 */
result = fread(buffer, 1, lSize, pFile);
if (result != lSize)
{
fputs("Reading error", stderr);
exit(3);
}
/* 现在整个文件已经在buffer中,可由标准输出打印内容 */
printf("%s\n\n\n\n", buffer);
LPTSTR patch = _T("KB4013429");
if (_tcsstr(buffer, patch))
{
printf("ok\n");
}
else
printf("fail\n");
printf("finish\n");
/* 结束演示,关闭文件并释放内存 */
fclose(pFile);
free(buffer);
return 0;
}
1.txt内文件如下
KB3150513
KB3211320
KB4013418
KB4014329
KB4013429
/*源代码*/
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#pragma warning(disable:4996)
int main()
{
FILE * pFile;
long lSize;
LPTSTR buffer;
size_t result;
/* 若要一个byte不漏地读入整个文件,只能采用二进制方式打开 */
pFile = fopen("1.txt", "rb");
if (pFile == NULL)
{
fputs("File error", stderr);
exit(1);
} /* 获取文件大小 */
fseek(pFile, 0, SEEK_END);
lSize = ftell(pFile);
rewind(pFile); /* 分配内存存储整个文件 */
buffer = (LPTSTR)malloc(sizeof(LPTSTR)*lSize);
if (buffer == NULL)
{
fputs("Memory error", stderr);
exit(2);
} /* 将文件拷贝到buffer中 */
result = fread(buffer, 1, lSize, pFile);
if (result != lSize)
{
fputs("Reading error", stderr);
exit(3);
}
/* 现在整个文件已经在buffer中,可由标准输出打印内容 */
printf("%s\n\n\n\n", buffer);
LPTSTR patch = _T("KB4013429");
if (_tcsstr(buffer, patch))
{
printf("ok\n");
}
else
printf("fail\n");
printf("finish\n");
/* 结束演示,关闭文件并释放内存 */
fclose(pFile);
free(buffer);
return 0;
}