如何读取字符直到一个字符?

问题描述 投票:0回答:1

我正在尝试执行一个循环,从文件中读取单个字符,直到找到'\n''*'这是我写的循环

i=0;
do { 
      fscanf(fin,"%c",&word[i]);
      i++;
    }while(word[i]!='*'&&word[i]!='\n');

现在,我尝试看看为什么它在调试器中不起作用。当我在fscanf之后立即打印word[i]时,它会显示正确的字符,但是如果我在与word[i]'*'进行比较时尝试打印'\n',则会显示word[i]'\000'循环永无止境。我也尝试了fgetc,但是我有同样的错误。

c input char infinite-loop
1个回答
0
投票

您的while条件未测试您刚刚读取的word的相同元素,因为i++在测试前增加了变量。

将测试更改为使用word[i-1]而不是word[i]进行调整。

BTW,word[i] = fgetc(fin);是读取一个字符的一种更简单的方法。

© www.soinside.com 2019 - 2024. All rights reserved.