我试图制作一个程序,它接受来自ubuntu终端的命令并同时读入一个文件。如果用户键入“-c”,它将读取文件并打印字符计数,如果用户键入“-w”,它将从读取的文件中打印字数,“-l”打印换行的数量字符。无论如何,我试图用fscanf做这个字符数,但它似乎没有工作出于某种原因。任何人都可以解释我做错了什么,或者是否有更好的方法来做到这一点?C语言命令行参数+在文件中读取
#include
#include
#include
int main(int argc, char *argv[]){
int i;
char words[1000];
int counter = 0;
for(i = 0; i < argc; i++){
if(strncmp(argv[i], "-c", 2) == 0){
if(argv[i + 1] != NULL){
while((fscanf(argv[i + 1], "[^\n]%s", words[i])) != EOF){
counter++;
}
printf("%d characters\n", counter);
}
printf("print character count\n");
}
else if(strncmp(argv[i], "-w", 2) == 0){
printf("print word counts\n");
}
else if(strncmp(argv[i], "-l", 2) == 0){
printf("print newline counts\n");
}
else if(strncmp(argv[i], "-h", 2) == 0){
printf("prints help\n");
}
}
}
+0
它是'sscanf'而不是'fscanf'从字符串读取。 –
+0
您也可以使用getopt库来解析命令行参数。 –