C 如何在带有file_指针的文件中找到特定字符?

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

我想做一个简单的登录,注册系统。注册部分已经完成,但登录部分有点混乱

使用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 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从文本文件中读取行的帖子。您有没有阅读其中任何一个,看看它们是否能解决你的问题?