#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char passage[5000][20];
int wordnum;
char *getword(int x);
void readTextFile() {
FILE *fp;
//char buffer;
fp = fopen("data.txt", "r");
int i=1,j=1;
while (fscanf(fp,"%c", &passage[i][j]) != EOF){
if (passage[i][j] == '.' || passage[i][j] == ',' || passage[i][j] == '!' || passage[i][j] == '?' || passage[i][j] == ' '|| passage[i][j] == ';'){
i++;
j=1;
}else{
j++;
}
}
fclose(fp);
wordnum = i;
}
int main(){
readTextFile();
int i;
for (i=0;i<20;i++){
char *word = getword(i);
if (strlen(word)<= 0)
break;
printf("%d\n", strcmp(word,"am"));
printf("word[%d]=%s", i, word);
printf("length = %i \n\n", strlen(word));
}
}
char *getword(int i){
static char s[20];
int j=0;
while (passage[i][j] != '\0'){
s[j]=passage[i][j];
j++;
}
s[j]='\0';
return s;
}
Я написал эту программу, чтобы прочитать отрывок из текстового файла, а затем поместить весь отрывок в двумерный массив для обработки. Функция, с которой я работаю, состоит в том, чтобы получить любое слово из массива 2d по его первому индексу, затем сравнить слово с некоторыми определенными словами и вернуть результаты.
Но эта программа ничего не показывает, хотя я не заметил ничего плохого.
fopen()
всегда проверяйте (!=NULL) возвращаемое значение, чтобы убедиться, что операция прошла успешно. - person user3629249   schedule 23.10.2017