读取int。来自命令行的文件(txt),甚至是奇数文件

时间:2016-03-07 17:58:57

标签: c

写了这段代码,不知道为什么它不能正常工作

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main (int argc, char *argv[]){

    int i=1;
    //this is where i started loop read file.      
    for (i=1; i<argc;i++){

        FILE *file1 = fopen("argv[i]","r");//reading file

        FILE *file2 = fopen("even.txt","w");//making even file

        FILE *file3 = fopen("odd.txt","w");//odd file
        //These are the files i am reading and writing to.
        int nums;

Main looping 
       while (file1  != EOF)
       {

           fscanf (file1,"%d",&nums);

           nums++;
           //adding the conditions to what i want each file to have.

           if (num % 2 == '0'){
               fprintf (file2,"%d",nums);
            }

            //if condition fails move the numbers to the Odd file.
            else {
                fprintf (file3,"%d",nums);
            } 

        //I tried the loops here but ut gave me segment error.
        }
    //closing all files

    fclose (file1);
    fclose (file2);
    fclose (file3);
    }
return 0;
}

1 个答案:

答案 0 :(得分:0)

修改以下行以与integer.

进行比较
if (num % 2 == '0') // This is wrong, you are comparing `int` with `character`
 {
   fprintf (file2,"%d",nums);
 }

将其更改为;

if (num % 2 == 0) // This is wrong, you are comparing `int` with `character`
{
   fprintf (file2,"%d",nums);
}

希望这有帮助。