gpt4 book ai didi

c - 两个或多个命令行参数?

转载 作者:太空宇宙 更新时间:2023-11-04 06:40:40 25 4
gpt4 key购买 nike

虽然我设计代码的概念是它可以处理无限数量的文件,但我最终在我的命令行上使用了一个参数,即一个文件供它使用,我终于得到了这段代码。它所做的是获取 X 数量的包含由空格分隔的单词的 txt 文件,并用\n 替换空格,从而创建一个单词列表。虽然它成功地完成了第一个参数,但当我添加两个或三个时它会出现故障,真的很想让它工作!

附言。这是同一代码的其他 2 篇文章的延续。这不是家庭作业,我目前不在 Uni,只是在我们的讲座之前试验 C 文件 i/o。

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

int main(int argc, char** argv) {
FILE *fpIn, *fpOut;
int i, j;
j = 1;
int c;
char myString[256];

printf("%d", argc);
printf("\n");
printf("The following arguments were passed to main(): ");
for(i=1; i<argc; i++) printf("%s ", argv[i]);
printf("\n");

while(argc--) {
for(i = 1; i <= argc; i++) {
fpIn = fopen(argv[j], "rb");
snprintf(myString, 256, "%s~[%d]", argv[j], i);
fpOut= fopen(myString, "wb");
while (1) {
c = fgetc(fpIn);
if ( c == EOF)
break;
if (isspace(c))
c = '\n';
fputc(c, fpOut );
}
j++;
}
}
return 0;
}

最佳答案

看起来你有两个循环在做同样的事情!

while(argc--) {
for(i = 1; i <= argc; i++) {

你真的只需要一个循环来遍历参数。如果使用 while 循环,则使用 argc 或 j 作为 argv 的索引。如果您使用 for 循环,这是一种更简洁的方法,请使用 for 循环参数 i 作为 argv 的索引。

关于c - 两个或多个命令行参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8650760/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com