首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >文件读写问题

文件读写问题
EN

Stack Overflow用户
提问于 2011-04-10 18:49:52
回答 4查看 319关注 0票数 0

我写了以下代码。我应该用bill改变标签,但是我的代码nothing.What可能是问题所在?我的代码是:

代码语言:javascript
复制
#include <stdio.h>
#include <string.h>
int main ()
{
  FILE * pFile;

  char tag [6];
  char code[20]="bill";
  pFile = fopen ("example.asm","r+");
  if (pFile==NULL)
  {
    perror("Error");  
  }
  else
  {

  while(!feof(pFile))
  {
    fgets(tag,5,pFile);

    if((tag=="<bp>") && (!feof(pFile)))
    {

        fputs(code,pFile);  

    }

  }

  }
fclose(pFile);
 return 0;
}
EN

回答 4

Stack Overflow用户

发布于 2011-04-10 18:54:52

您不能使用==运算符比较字符串,因为它将比较两个指针之间的字符串,而不是它们所指向的字符串,您应该使用strcmp(tag,"<bp>")

票数 3
EN

Stack Overflow用户

发布于 2011-04-10 20:30:22

正如所有人在c中所说的那样,比较字符串时使用strncmppointers

代码语言:javascript
复制
#include <stdio.h>
#include <string.h>
int main ()
{
  FILE * pFile;

  char tag [6];
  char code[20]="bill";
  pFile = fopen ("example.asm","r+");
  if (pFile==NULL)
  {
    perror("Error");  
  }
  else
  {

  while(!feof(pFile))
  {
    fgets(tag,5,pFile);

    if((strncmp(tag, "<bp>") == 0) && (!feof(pFile)))
    {

        fputs(code,pFile);  

    }

  }

  }
fclose(pFile);
 return 0;
}
票数 1
EN

Stack Overflow用户

发布于 2011-04-10 18:54:26

首先,if (tag == "<bp>")不适合C语言。试试strcmp http://www.elook.org/programming/c/strcmp.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5611250

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档