我在C方面是个彻头彻尾的新手。我无法将这个函数与main函数联系起来。我试图打印一个二维数组,但总是出现分段错误。非常感谢您的帮助。
编辑:当我将最后一行的“printf(“%d:[%s] \ n”,i,*(p + i))”从%s更改为%c时,我得到了我正在从中读取的文件的第一个单词。所以事实证明,确实有东西从我的函数返回。现在只需要弄清楚如何让它从文件的其他行返回单词。
编辑:当我将最后一行的“printf(“%d:[%s] \ n”,i,*(p + i))”从%s更改为%c时,我得到了我正在从中读取的文件的第一个单词。所以事实证明,确实有东西从我的函数返回。现在只需要弄清楚如何让它从文件的其他行返回单词。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define num_strings 20
#define size_strings 20
int *read_file(){
int j = 0;
static char text[num_strings][size_strings];
FILE *fp;
int x;
fp = fopen("dictionary2.txt", "r");
char s[100];
while(!feof(fp)) {
x = fscanf(fp,"%[^\n]",s);
fgetc(fp);
if (x==1) {
strcpy(text[j],s);
j++;
}
}
return text;
}
int main() {
int *p;
p = read_file();
int i;
for(i = 0; i < 10; i++) {
printf("%d:[%s]\n",i,*(p+i));
}
return(0);
}
p
的类型)更改为char (*)[20]
(指向包含20个字符的数组的指针)。至于如何返回,请参见https://dev59.com/PGgv5IYBdhLWcg3wKtzj。 - Dmitri