【发布时间】:2015-12-05 00:35:02
【问题描述】:
我正在学习 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 );
}
【问题讨论】:
-
命令行参数是命令行参数。将它们传递到命令中执行。
-
你是如何执行程序的?
-
顺便说一下,你应该关闭你成功打开的文件。
-
./outputfile file1 file2 你应该运行这个
-
代码“获取”命令行参数就好了。问题是 OP 期望如何将它们“放入”Qt 环境中。
标签: c qt command-line-arguments