有一个把几个字符串写入文件1,求出最大字符串,再将其写入另一个文件的题不知道哪里错了😭,求解答一下
代码没贴完整,找了一个和你需求类似的,你参考下
#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;
}
如果还不行,检查下文件权限
编译没报错啊,怎么啦?
不知道你这个问题是否已经解决, 如果还没有解决的话: