输入字符串在C中的二进制文件

时间:2019-06-01 06:42:32

标签: c

在MAIN中,我们要求用户键入一个字符串。提取字符串后,应删除字符“ / N”。 这将他添加为哨兵之前的最后一行。 如果为n,则使用字符串的fgets-。以这样的方式写入字符串,其中包括“ / 0”。最后,程序会将字符串写入二进制文件。 我们从文件中读取的每个字符必须放置在动态数组中,以便每个fread元素。然后,用动态数组读取整个文件将是文件中的另一个字符。 (包括“ / 0”。)

我不知道如何制作“我们从文件中读取的每个字符都必须放置在动态数组中,以便每个fread元素。”

int main() {
    char str[LEN];
    printf("\n Please enter the string: ");
    clean();
    fgets(str, LEN, stdin);
    removeNewLine(str);

    FILE *fp = fopen("1.dat", "w+b");
    if(fp == NULL) {
        fprintf(stderr, "Can not open the file\n");
        exit(1);
    }

    if(fwrite(str, sizeof(str), 1, fp) != 1) {
        fprintf(stderr, "Can not write the file\n");
        exit(1);
    }

    rewind(fp);

    char tmp;
    while(fread(&tmp, sizeof(char), 1, fp) == 1)
        printf("%d, ", tmp);
    if(ferror(fp)) {
        fprintf(stderr, "Can not read the file\n");
        exit(2);
    }

    fclose(fp);

    return 0;
}

0 个答案:

没有答案