我创建了一个名为“thetext.txt”的文本文件,它有一个引号。 引用是: “如果地球上没有数学家,那对真正的物理学会更好。 -Daniel Bernoulli“ 现在,我想将其保存在二维数组[200] [[20]中,以计算单词。 它只打印字符串(It would)。
我做了什么:
void countwords(char word2[B][N]){
FILE *read;
char c;
int i, j;
int words=0, x=0;
if((read=fopen("thetext.txt", "rt"))==NULL){
printf("Cannot open File.");
return ;
}
if(fgets(word2, sizeof(word2), read) != NULL){
printf("%s",word2);
}
fclose(read);
return ;
}
答案 0 :(得分:0)
在C中,当您将数组传递给函数时,它会将其作为指针传递。
我假设你做了#define B 200
和#define N 20
来编译它。
您的fgets
来电相当于:
if(fgets(word2,sizeof(char**), read)!= NULL)
如果要读取更多数据,请增加该大小。
另外你的数组似乎有一个奇怪的大小,因为20个字符仍不足以容纳该文本,也许你的意思是word2[N][B]
? 20行,每行可容纳199个字符?
if(fgets(word2[0], sizeof(char)*B, read)!= NULL)