2015-02-17 5 views
0

Эй, ребята, я пытаюсь взять слова из входного файла и поиграть с ними, чтобы разместить их в определенном порядке (что, я считаю, я сделал правильно).Ввод слов из входного файла в массив

Моя проблема в том, что я не думаю, что какое-либо из слов действительно входит в массив слов, потому что, когда я печатаю, ничего не появляется. Если я хочу взять слова из файла и в массив слов. Что я делаю не так?

 while (fscanf(file, "%s", word) == 1) 
     { 
      wc = strtok(word, " \n"); 
      while (wc != NULL) 
      { 
       wc = strtok(NULL, " \n"); 
       count++; 
      } 
+0

проверка 'STRCPY (слово, слово [х])' здесь 'слово [х]' является unintialized –

+0

Что вы пытаетесь сделать здесь 'туалет = strtok (NULL," \ п «);'? – Vagish

+0

Я просто пытался подсчитать количество слов в файле, чтобы я мог использовать переменную count @Vagish – Jroc

ответ

1
while (fscanf(file, "%s", word) == 1) 

Я вижу, что вы используете fscanf() и %s поэтому в основном вы просто извлечение одного слова из файла, а затем вы пытаетесь сломать это слово в лексемы, предполагающих вы принесли линию.

Использование

char buf[100]; 
int count = 0; 
while(fgets(buf, sizeof(buf),file) != NULL) 
{ 
    // Break the line into words using space as delimiter and copy it to the words array 
    char *p = strtok(buf," "); 
    while(p != NULL) 
    { 
     // strcpy(words[count],p); If you wish to copy the words into an array 
     count ++; 
     p = strtok(NULL," "); 
    } 
} 
printf("Number of words in the file are %d\n",count); 
+0

, которая когда-то была% 99s, я должен ее изменить или попробовать? – Jroc

+0

@Jroc Есть несколько ошибок вместе с этим. При получении каждого токена вам нужно скопировать его в массив, который, как я вижу, вы не делаете – Gopi

+0

Это, скорее всего, моя проблема. Однако мой ум полностью онемел. Поэтому я немного запутался в том, что делать, чтобы исправить это @Gopi – Jroc

Смежные вопросы