不知道写的文件题哪里错了

有一个把几个字符串写入文件1,求出最大字符串,再将其写入另一个文件的题不知道哪里错了😭,求解答一下

img

img

代码没贴完整,找了一个和你需求类似的,你参考下

#include <stdio.h>
#include <string.h>

#define MAX_LEN 100  // 定义字符串最大长度为 100

int main() {
    char str[100];  // 用于输入多个字符串
    char longest_str[100] = "";  // 用于存储最长的字符串
    int longest_len = 0;  // 记录最长字符串的长度

    // 打开文件1以写入模式向其中写入多个字符串
    FILE* fp1 = fopen("file1.txt", "w");
    if (!fp1) {
        printf("无法打开文件1\n");
        return -1;
    }

    printf("请逐行输入字符串(每行不超过 %d 个字符,输入 'exit' 退出):\n", MAX_LEN);
    while (1) {
        fgets(str, 100, stdin);  // 从标准输入获取一行字符串
        if (!strcmp(str, "exit\n")) {  // 输入 'exit' 结束输入
            break;
        }
        str[strlen(str) - 1] = '\0';  // 将换行符替换为空字符

        fprintf(fp1, "%s\n", str);  // 将当前字符串写入文件1中

        // 如果当前字符串的长度大于最长字符串的长度,则更新最长字符串的值
        if (strlen(str) > longest_len) {
            longest_len = strlen(str);
            strcpy(longest_str, str);
        }
    }

    fclose(fp1);  // 关闭文件1

    printf("已将字符串写入文件1\n");

    // 打开文件2以写入模式,并将最长的字符串写入其中
    FILE* fp2 = fopen("file2.txt", "w");
    if (!fp2) {
        printf("无法打开文件2\n");
        return -1;
    }

    fprintf(fp2, "%s", longest_str);

    fclose(fp2);  // 关闭文件2

    printf("已将最长的字符串写入文件2\n");

    return 0;
}

如果还不行,检查下文件权限

编译没报错啊,怎么啦?

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^