【发布时间】:2012-09-15 00:57:37
【问题描述】:
请更正以下代码:仅限。
文件已经包含条目:第一行用户名;第二行密码。
复选框状态需要写入第三行,并且只需要读取或更改文件中的复选框状态值。
目前,如果复选框状态值已经存在,则此代码正在工作,然后它正在覆盖,否则 UI 挂起。
WriteCheckStatusToFile(BOOL& locVar)
{
FILE *l_pFile = NULL;
CString l_strRememberCheck;
l_strRememberCheck = GetExePath() + _T("password");
CString sVar;
sVar.Format(_T("%d"),locVar);
if(NULL != (l_pFile = fopen(l_strRememberCheck, _T("r+"))) )
{
int count = 0;
char c;
while(count != 2)
{
if((c = fgetc(l_pFile)) == '\n') count++;
}
fseek(l_pFile,ftell(l_pFile),SEEK_SET);
fprintf(l_pFile, sVar);
}
l_strRememberCheck.ReleaseBuffer();
fclose(l_pFile);
}
提前感谢大家!
山姆
【问题讨论】:
-
sVar看起来不像 C 字符串。 -
这是什么语言?
BOOL和CString是如何定义的? -
C++和C是非常不同的语言,两个标签都不能应用。请只为您的问题使用正确的标签,不要随意选择它们。 -
@epsalon 这是 Windows 代码,在 MFC 或 ATL 下。这两天都有CString。
-
@user1610015
CString当然是 MFC 类,C-String 是以空字符结尾的字符数组。fprintf函数对CString类一无所知。它只能采用 C-String(数组)。我试图标记错误。