将字符串从文本文件读取到结构中时出现分段错误

时间:2014-12-16 22:27:00

标签: c arrays string struct

我试图将文件读入包含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;
}

1 个答案:

答案 0 :(得分:4)

该行

for (i = 1; i <= argc; i++) 

不对。您需要在argc-1停止索引。

for (i = 1; i < argc; i++) 

for (i = 1; i != argc; i++)