Как читать данные из неизвестного типа ввода (filestream или stdin) C
Я хотел знать, как читать данные из неизвестного источника ввода, то есть я не знаю, собирается ли пользователь просто ввести предложение или он даст мне какой-нибудь текстовый файл. Я пытался использоватьfscanf
так как я прочитал, это предназначено для неформатированного типа ввода, это мой код, я полагаю, чтобы получить некоторый тип ввода (файл или просто предложение(echo bla bla bla)
а также"int"
и распечатать только"int"
первые слова Программу следует использовать для конвейерной передачи, то есть команда будет выглядеть так:
Есть 2 способа использования программы:
1.echo "blabla" | myprog 2 (number of words to print)
2.cat input.txt | myprog 2 (number of words to print)
Проблемная строка - строка 16, я пытался использоватьfscanf
Спасибо!
1 #include <stdio.h>
2 #include <ctype.h>
3 #include <string.h>
4 #include <stdlib.h>
5
6
7 int main(int argc, char *argv[]){
8 char *words[32];
9 int numofwords = atoi(argv[2]);
10 int i=0;
11 int len;
12 char *word = malloc (32 * sizeof(char));
13 char c;
14 while (i<=numofwords){
15 if ((c = getc (argv[1])) != EOF){
16 fscanf(argv[1],"%s",&word);
17 len = strlen (word);
18 words[i] = malloc ((len+1) * sizeof(char));
19 i++
20 }
21 printf(words[i]);
22 }
23 return 0;
24 }
25