【发布时间】:2012-11-26 04:57:16
【问题描述】:
我目前正在尝试让我的程序按我想要的方式运行。我目前可以从命令行(无限量)打开任何文本文件并显示它们。我想对此进行扩展,让用户输入格式化显示文本的短语。我之前发布了一个类似的问题,我得到了一些很好的答案,但我不能使用 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)
{
}
【问题讨论】:
-
为什么不能使用
getopt()? -
因为他在 Windows 上?用户 ID 不同,但讨论的选项与 Am I understanding
getopt()correctly? 中的相同。 -
对“getopt source at&t public domain”进行谷歌(或您选择的其他搜索引擎)搜索。您将找到
getopt()版本的源代码,该版本大约在 1985 年由 AT&T 置于公共领域。您需要将其转换为标准 C(它不使用原型),否则,您应该一切顺利。 -
请了解如何正确缩进您的代码以便在 SO 上展示。通常,完全避免使用制表符并将制表位设置为 4。
标签: c syntax if-statement