我正在Qt环境中学习C编程。
我的程序应该采用两个命令行参数作为文件名,一次读取第一个文件中的字符,然后以相反的顺序将字符写入第二个文件。但是,程序无法正常执行。
程序输出为:
Usage: copy infile outfile
按Enter后程序终止执行。 我想没有命令行参数。
你能否告诉我在哪里以及如何获得它们?
//Command-Line Arguments
#include <stdio.h>
void reverseFile( FILE *inPtr, FILE *outPtr );
//function main begins program execution
int main ( int argc, char *argv[])
{
FILE *inFilePtr;
FILE *outFilePtr;
if ( argc != 3 )
{
printf("Usage: copy infile outfile\n");
}
else
{
if ( ( inFilePtr = fopen( argv[1], "r" ) ) != NULL )
{
if ( ( outFilePtr = fopen( argv[2], "w" ) ) != NULL )
{
reverseFile( inFilePtr, outFilePtr );
}
else
{
printf("File \"%s\" could not be opened\n", argv[2]);
}
} //end if
else
{
printf("File \"%s\" could not be opened\n", argv[1]);
}
} //end else
return 0;
} //end function main
void reverseFile( FILE *inPtr, FILE *outPtr )
{
int c;
if ( ( c = fgetc( inPtr ) ) != EOF )
{
reverseFile( inPtr, outPtr );
}
fputc( c, outPtr );
}
答案 0 :(得分:3)
如果您使用的是Qt创建者,请转到左侧面板上的“项目”,选择项目的选项卡,然后选择“编译并执行”。在“执行”部分中,您有一个名为“Arguments”的编辑框。您可以在此处放置文件的路径,例如:./ MyDirectory / file1.txt ./MyDirectory/file2.txt。
答案 1 :(得分:0)
在命令行中,运行程序时需要输入:
copy inFile outFile
或将copy
替换为可执行文件名inFile
,其名称为输入文件,outFile
替换为输出文件的名称。然后inFile和outFile名称将被复制到源代码中的args[1]
和args[2]
。
如果您使用的是Windows,则可能需要输入类似
的内容copy.exe inFile outFile
如果您使用的是类似
的Linux./copy inFile outFile
如果您使用的是像Visual Studio或Eclipse这样的IDE,则需要在运行时配置传递给可执行文件的参数。请阅读IDE的文档。
你也在提问中提到Qt。尽管代码中没有与Qt相关的内容,但Qt是一个C ++框架