1

我目前正试图让我的程序以我想要的方式工作。我目前可以从命令行(无限量)打开任何文本文件并显示它们。我想对此进行扩展,让用户输入格式化显示文本的短语。我之前发布了一个类似的问题,我得到了一些很好的答案,但我不能使用 getopt()。否则如何扫描命令行以查找“-w”和数字,因此“-w5”和没有数字的“-s”。这是我唯一希望能够检测到的两件事。我不介意 if 语句,我希望我的朋友中的程序最短,但在这一点上,我只想完成它。有任何想法吗?多个 if 语句是我朋友的想法,我个人认为这是不需要的,但如果那样的话 这是我必须做的……如果其他人有任何想法,那将非常有用。我只想让我的程序从命令行检测这两个字符。我对 C 还很陌生(我只编写了几个程序),但我学习起来比较熟练,我尝试过谷歌搜索并自己尝试,但对 C 很陌生,试图通过它找到我需要的东西所有其他文字和行话都很困难。

任何东西都会有用的,谢谢。

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


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

int l = 1;
    while(l != argc)
{
        FILE *fp; 


    fp = fopen(argv[l], "rb");
    l++; 

if (fp != NULL) 
{
    int i = 1;
    do
    {
        i = fgetc(fp);   
        printf("%c",i);
        printf(" ");
    }
    while(i!=-1);
    fclose(fp);
}
else
{
    printf("Error.\n");

}
    }
}
void scanningForWS(int argc, char **argv)
{





}
4

2 回答 2

1

您应该在他们的libc.h文件(文件的最后)中查看 plan9 的 ARGBEGIN 和 ARGEND 宏,以了解它是如何完成的(有关其用法的示例,请参见arg(3))。

或者,您可以检查此机制的完美实现,这非常好(我重新实现了它的一个版本,即使在找到不正确的标志后也可以解析参数,但它没有在任何地方发布。如果您需要,我可以发布它那)。

于 2012-12-08T00:38:16.073 回答
0

命令行参数在 argv 中,由于 argv 是一个数组,因此在其中找到特定元素的唯一方法是遍历,检查每个元素,直到获得所需的元素。如果您不想自己编写所有内容,那么看起来 C 在 search.h 中有一个名为 'lfind' 的方法可以执行此操作。这是一个如何使用它的示例。希望有帮助:3。

此外,它的GNU 文档

于 2012-12-08T05:39:40.503 回答