c - 写入偶数和奇数的程序

标签 c

我正在编写一个程序,可以读取一组名为 dog.txt 的数字文件; 并且还写入分隔奇数和偶数的两个文件。我能够编译我的程序,但是,预期的输出不一样,在一个名为 EVEN 的文件中应该是偶数,在文件 odd 中应该是奇数。

#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
  int i;
  int even,odd;
  int num;

  if (argc != 4) {
    printf("Usage: executable in_file  output_file\n");
    exit(0);
  }

  FILE *dog = fopen(argv[1], "r");
  FILE *feven= fopen(argv[2], "w");
  FILE *fodd= fopen (argv[3], "w");
  while (fscanf(dog, "%d", &num) != EOF)
    {
      if (0==i%2){
        i++;
         printf("even= %d\n", num);
         }
      else if(i!=0){
       i++;
       printf("odd= %d\n", num);
      }
    }
  fclose(feven);
  fclose(fodd);
  fclose(dog);

  return 0;
}

输出:

even= 1
odd= 2
even= 34
odd= 44
even= 66
odd= 78
even= 94
odd= 21
even= 23
odd= 54
even= 44
odd= 65
even= 78
odd= 68
even= 92

最佳答案

您正在检查 i % 2,而不是 num % 2。我什至不确定 i 在这个例子中做了什么——也许你打算稍后使用它。

while (fscanf(dog, "%d", &num) != EOF) {
    if (num % 2 == 0) {
        printf("even = %d\n", num);
    }
    else if(num != 0) {
        printf("odd = %d\n", num);
    }
}

我想一旦你修复了这个错误,将这些数字写入文件的代码将在稍后出现。

关于c - 写入偶数和奇数的程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2541506/

相关文章:

c - "Hello World"失败 语法错误 : word unexpected (expecting ")")

c - 让用户在 C 中输入算术表达式

c - 非root用户的setuid等效项

c - 从结构体访问数组并将其转换为指针

c - 如何正确地将字节 'AL'推送到C函数?

c - free()之前是否需要检查指针是否为空

c - 使用不同长度的字符串会导致崩溃,并且不确定原因

c - 内联汇编未知

c - 将 gcc 调试构建选项从 -ggdb3 更改为 -g3 -gdwarf-2 是否会产生负面影响?

c - 在 HTTP 服务器中发出文件结束信号