【发布时间】:2019-05-07 06:36:11
【问题描述】:
我有一个文件,其中包含由换行符分隔的不同单词。如何读取每个单词并将其存储在字符串数组中? 1 个字,1 行数组。 我正在发布这段代码,但我很确定它不起作用,因为我不明白我应该使用 fgets 还是 fscanf 以及如何在数组的每一行中写入每个单词。
int file_string_temp_number_rows=200;
int file_string_temp_number_cols=200;
char **file_string_arr = (char**)malloc (file_string_temp_number_rows*sizeof(char));
for ( i = 0 ; i < file_string_temp_number_rows ; i++){
file_string_arr[i] = (char*)malloc(file_string_temp_number_cols*sizeof(char));
}
if ((file_ptr= fopen(filename, "r"))){
if((file_ptr=fopen(filename,"r"))==NULL)
{
printf("errore apertura file");
return 1;
}
else{
while(!feof(file_ptr)){
for(i = 0 ; i < file_string_temp_number_rows ; i++){
for(j = 0 ; j < file_string_temp_number ; j++){
fgets(file_string_arr , 40 , filename);
}
}
}
}
}
}
【问题讨论】:
-
您的第一个
malloc应该是*sizeof(char *),因为您想为指针分配空间。 -
还有,为什么要打开文件两次?
-
我将您的帖子恢复为原始内容。一般来说,使用来自 cmets 或答案的内容来编辑您的帖子以进行更正并不是一个好主意。 (除了格式,或澄清您的问题的附加信息)它导致人们不得不追逐解决方案。也就是说,当您将其他人的建议编辑到您的答案中时,问题就变成了一个移动的目标。