反转字符串中的每个特定行

时间:2017-06-22 22:00:18

标签: c

我试图使用递归方法在文本文件中反转我的行。我现在非常困难,我当前的输出是分段错误 - 有人可以解释分段错误是什么来推动我朝着正确的方向前进吗?

 .scorePoints{
      display:flex;
      justify-content: center;
 }
 .DualScorepoints {
       display: flex;
       align-items: center;
 }

1 个答案:

答案 0 :(得分:1)

您收到分段错误,因为您的第一个if语句中有||条件,其中一个条件总是为真,导致堆栈从无限递归中溢出!将其更改为&&,它应该全部修复!

if((c = getchar()) != EOF && (c != '\n'))

编辑:此外,我认为由于第二个getchar(),您将遇到一些不正确的功能。我会将你的功能改为:

void RecursionLine()
{
  int c = getchar();
if(c != EOF || c != '\n')
    {
      RecursionLine();
      printf("%c",c);
    }
 else if(c != EOF && c == '\n'){
      printf("\n");
      RecursionLine();
}
}

否则你将在每次迭代中读取可能的2个字符,这将导致跳过其中一个/两个!