C 如何在带有file_指针的文件中找到特定字符?
我想做一个简单的登录,注册系统。注册部分已经完成,但登录部分有点混乱 使用Txt文件登录。Filename-ID,文件包括“昵称| PW” 然后首先扫描ID,如果ID存在->获取PW并打开ID txt文件以比较PW 我试过fgets和fread还有更多。。。但是我不知道如何使用它们C 如何在带有file_指针的文件中找到特定字符?,c,file-pointer,C,File Pointer,我想做一个简单的登录,注册系统。注册部分已经完成,但登录部分有点混乱 使用Txt文件登录。Filename-ID,文件包括“昵称| PW” 然后首先扫描ID,如果ID存在->获取PW并打开ID txt文件以比较PW 我试过fgets和fread还有更多。。。但是我不知道如何使用它们 int ckk; // position of "|" ck_pw = fopen(fpp_id, "r"); //open ID txt file to read including text for (int
int ckk; // position of "|"
ck_pw = fopen(fpp_id, "r"); //open ID txt file to read including text
for (int j = 0;; j++) { // count where is "|"
char buf; // buffer
buf = '\0'; //reset buf
fread(buf, j, 1, ck_pw);
if (buf == '|') { //find "|"
ckk = j + 1;
break;
}
}
fseek(ck_pw, ckk, SEEK_CUR); //move cursor to "|"
for (int k = 0;; k++) { //read text before space(NULL)
fread(pw_ck, k, 1, ck_pw);
if (pw_ck[k] == NULL) {
break;
}
}
我使用了一个未初始化的“ck_pw”局部变量。
在Visual studio 2017中,您应该检查
fread
返回值。那么代码本身是否正确?是吗?不定义“正确”<代码>for(int j=0;;j++)和for(int k=0;;k++)
是无止境的循环,如果文件中没有
,pw_-ck[k]==NULL
-您正在将char
与void*
进行比较(假设pw_-ck
是一些char[?]/code>指针并且有效),则代码不完整(main
缺失,相关的#包括s,以及ck\u pw
,fpp\u id
,pw\u ck
等的声明缺失),您不检查fread
的返回值,也不检查fopen
的返回值,也不检查fseek
的返回值。第二个循环没有任何意义,您正在读取k
字符并不断增加k,代码将无法按预期工作。此网站上有许多关于使用C从文本文件中读取行的帖子。您有没有阅读其中任何一个,看看它们是否解决了您的问题?您应该检查fread
返回值。那么代码本身是否正确?是吗?否?定义“正确”。for(int j=0;;j++)
和for(int k=0;;k++)
是无止境的循环,如果文件中没有
,pw_k[k]==NULL
-您正在将char
与void*
进行比较(假设pw_-ck
是某个char[?]
指针且有效),代码不完整(main
缺失,相关的#包括s,以及ck\u pw
,fpp\u id
,pw\u ck
等的声明缺失),您不检查fread
的返回值,也不检查fopen
的返回值,也不检查fseek
的返回值。第二个循环没有任何意义,您正在读取k
字符并不断增加k,代码将无法按预期工作。此网站上有许多关于使用C从文本文件中读取行的帖子。您有没有阅读其中任何一个,看看它们是否能解决你的问题?