用传递的两个参数调试C程序

用传递的两个参数调试C程序,c,codelite,C,Codelite,我已经修复了代码中的一些语法错误,现在程序编译得很好。但是当我执行程序时,输出文件是空的。outputFile的内容应按相反顺序排列。我试图在CodeLiteIDE中调试代码 我需要用传递的两个参数(inputFile和outputFile)调试代码。我似乎在CodeLiteIDE中找不到这个选项。我该怎么做 #include <fcntl.h> #include <stdio.h> #include <stdlib.h> #include <unist

我已经修复了代码中的一些语法错误,现在程序编译得很好。但是当我执行程序时,输出文件是空的。outputFile的内容应按相反顺序排列。我试图在
CodeLite
IDE中调试代码

我需要用传递的两个参数(inputFile和outputFile)调试代码。我似乎在
CodeLite
IDE中找不到这个选项。我该怎么做

#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>


#define BUFFER_SIZE 256
int main (int argc, char *argv[]){
    FILE  *inputFile, *outputFile; 
    int fileSize;
    int pointer;
    char buffer[BUFFER_SIZE];

    /* Check for correct user's inputs. */
    if( argc !=3 ) {
        fprintf(stderr, "USAGE: %s inputFile outputFile.\n", argv[0]);
        exit(-1);
    }

    /* Make sure input file exists. */
    if( (inputFile = fopen(argv[1], O_RDONLY))) {
        fprintf(stderr, "Input file doesn't exist.\n"); 
        exit(-1);
    }

    /* Create output file, if it doesn't exist.  Empty the file, if it exists. */

    if((outputFile = fopen(argv[2], "a+"))) {
        fclose(inputFile);
        exit(-1);
     }


    /* Find the size of the input file. */
    fileSize = fseek(inputFile, 0, SEEK_END);


    /* Read input file and write to output file in reversed order.*/

    for(pointer=fileSize-1; pointer>=0; pointer--) {


    /*Write content in the buffer to the output file */

        while(!feof(inputFile))
        {
            fgets(buffer, BUFFER_SIZE, inputFile); //reads 256 bytes at a time
            fputs (buffer , outputFile );
        }

    }

    fclose(inputFile);
    fclose(outputFile);

    return(0);
} 
#包括
#包括
#包括
#包括
#定义缓冲区大小256
int main(int argc,char*argv[]){
文件*inputFile,*outputFile;
int文件大小;
int指针;
字符缓冲区[缓冲区大小];
/*检查用户输入是否正确*/
如果(argc!=3){
fprintf(stderr,“用法:%s inputFile outputFile.\n”,argv[0]);
出口(-1);
}
/*确保输入文件存在*/
if((inputFile=fopen(argv[1],O_RDONLY))){
fprintf(stderr,“输入文件不存在。\n”);
出口(-1);
}
/*创建输出文件(如果不存在)。清空文件(如果存在)*/
if((outputFile=fopen(argv[2],“a+”)){
fclose(输入文件);
出口(-1);
}
/*查找输入文件的大小*/
fileSize=fseek(inputFile,0,SEEK\u END);
/*按相反顺序读取输入文件并写入输出文件*/
对于(指针=文件大小-1;指针>=0;指针--){
/*将缓冲区中的内容写入输出文件*/
而(!feof(inputFile))
{
fgets(缓冲区,缓冲区大小,输入文件);//一次读取256字节
fputs(缓冲区、输出文件);
}
}
fclose(输入文件);
fclose(输出文件);
返回(0);
} 

项目设置>>常规>>命令参数


项目设置>>常规>>命令参数

outputFile=fopen(argv[2],“a+”
不会清空文件。for循环
(pointer=fileSize-1;pointer>=0;pointer--)当然会反向计数,但这并不意味着输入是反向读取的。愉快调试:-)首先,查找文件末尾,然后尝试读取256字节。即使这样做有效(但不会),您也会尝试按照原始文件中的相同顺序(相对于256字节偏移量)将这256字节写入新文件。@PaulOgilvie corrected outputFile=fopen(argv[2],“w”)。谢谢。
outputFile=fopen(argv[2],“a+”)
不会清空文件。for循环
(pointer=fileSize-1;pointer>=0;pointer--)当然会反向计数,但这并不意味着输入是反向读取的。愉快调试:-)首先,查找文件末尾,然后尝试读取256字节。即使这样做有效(但不会),您也会尝试按照原始文件中的相同顺序(相对于256字节偏移量)将这256字节写入新文件。@PaulOgilvie corrected outputFile=fopen(argv[2],“w”)。谢谢。我在IDE中没有看到项目设置>>常规或命令参数。它隐藏在菜单的某个地方吗?谢谢@bolov,我找到了它。我在IDE的任何地方都看不到项目设置>>常规参数或命令参数。它藏在菜单的某个地方吗?谢谢@bolov我找到了它。