当前位置:  开发笔记 > 运维 > 正文

忽略C中的换行符

如何解决《忽略C中的换行符》经验,为你挑选了2个好方法。

我正在尝试编写一些读取文件并忽略换行符的代码(\n),到目前为止我有:

c = fgetc(fp);
for(int loop = 0; c != EOF; loop++)
{
    if((c != '\n') && (c != '\\'))
    {
        buffer[loop] = c;
    }
    c = fgetc(fp);
}

但它似乎并没有忽略'\n'位(不确定'\')

对不起代码的布局,该网站似乎不喜欢我的Opera版本:(

编辑:谢谢大家,我已经编了大约6个小时的编码,完全忽略了增量,这就是为什么我认为\n仍然是静止的.

我也不知道\ r,uning Linux但是试图制作跨平台,所以这很有用.



1> AndersK..:

试试这个

while ( (c = fgetc(fp)) != EOF )
{
  if ( c != '\n' && c != '\r' )
  {
    buffer[loop++] = c;
  }
}



2> Antti Huima..:

您正在运行哪个操作系统?Windows上的\n是两个字符(\ r \n).如果您只想忽略换行符,则不需要第二个条件.

但另一个问题是你每次都增加循环变量!只有在向缓冲区添加内容时才应增加"循环"!将'loop ++'从for(..)中取出并将其添加到缓冲区[loop ++] = c;.很可能你在缓冲区中得到随机字符代替'\n':s,例如,它可以是零.

推荐阅读
落单鸟人
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有