我试图将文件读入包含char数组的结构中,如下面的代码所示,但是它给出了分段错误的输出:11。我已经尝试了一切,包括使用类似的例子,但它已经完成了我的工作
我的代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LENGTH 1024
struct Raw_Word{
char word[MAX_LENGTH];
char filename [25];
int length;
};
struct Final_Word{
char word[MAX_LENGTH];
int length;
int amount;
};
struct Raw_Word raw_word[MAX_LENGTH];
int main(int argc, char* argv[]) {
if (argc > 10) {
printf("Maximum of 10 files allowed");
return 1;
}
int i = 0;
int lines = 0;
for (i = 1; i <= argc; i++) {
FILE *fp = fopen(argv[i], "r");
while(fgets(raw_word[lines].word, MAX_LENGTH, fp)){
//printf("%s", raw_word[lines].word);
}
fclose(fp);
}
for(int j = 0; j < lines; j++){
printf("%s\n", raw_word[j].word);
}
return 0;
}
答案 0 :(得分:4)
该行
for (i = 1; i <= argc; i++)
不对。您需要在argc-1
停止索引。
for (i = 1; i < argc; i++)
或
for (i = 1; i != argc; i++)