Я пытаюсь создать программу, которая принимает команды с терминала ubuntu и одновременно считывает их в файл. Команды будут, если пользователь наберет «-c», он будет считывать файл и печатать счетчик символов, если пользователь набирает «-w», он печатает количество слов из прочитанного файла, «-l», чтобы напечатать количество новой строки персонажи. В любом случае я попытался сделать это с помощью fscanf для подсчета символов, но по какой-то причине он не работает. Может ли кто-нибудь объяснить, что я делаю неправильно, или если есть лучшие способы сделать это?С помощью командной строки языка C + Чтение в файле
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
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");
}
}
}
Это 'sscanf' не' fscanf' для чтения из строки. –
Вы также можете использовать библиотеку getopt для анализа аргументов командной строки. –