C语言文件编码问题
#include<stdio.h>#include<stdlib.h>
int main()
{
FILE *fp;
char *a;
char *ch = "abcasdf";
if((fp = fopen("abc.txt","w"))==NULL)
{
printf("文件打开失败!");
}
fputs(ch,fp);
fclose(fp);
if((fp = fopen("abc.txt","r"))==NULL)
{
printf("文件打开失败!");
}
fgets(a,2,fp);
printf("%s",a);
fclose(fp);
}
这段代码一直弹错误问题,百度说是因为复制导致编码不一致,但是我啥也没复制,不知道为啥出现这个问题? 错误呢? #include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fp;
char *a;
char *ch = "abcasdf";
if((fp = fopen("abc.txt","w"))==NULL)
{
printf("文件打开失败!");
}
fputs(ch,fp);
fclose(fp);
if((fp = fopen("abc.txt","r"))==NULL)
{
printf("文件打开失败!");
}
//fgets(a,2,fp);
printf("%s\n","ok");
fclose(fp);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fp;
char *a = malloc(100);
char *ch = "abcasdf";
if((fp = fopen("abc.txt","w"))==NULL)
{
printf("文件打开失败!");
}
fputs(ch,fp);
fclose(fp);
if((fp = fopen("abc.txt","r"))==NULL)
{
printf("文件打开失败!");
}
fgets(a,100,fp);
printf("%s\n",a);
fclose(fp);
free(a);
return 0;
}
人造人 发表于 2020-5-5 19:20
我用你的代码一样报错,是什么问题?之前那个指针没赋初值改了 老牛来学习 发表于 2020-5-5 20:31
我用你的代码一样报错,是什么问题?之前那个指针没赋初值改了
这个警告应该不用管也没问题
把你修改后的代码发出来
老牛来学习 发表于 2020-5-5 20:31
我用你的代码一样报错,是什么问题?之前那个指针没赋初值改了
用我的代码报错?两个都错?报了什么错?
截图看看
人造人 发表于 2020-5-5 20:53
这个警告应该不用管也没问题
把你修改后的代码发出来
我用你的代码也有这个警告,修改完了跟你一样。‘
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fp;
char *a = malloc(100);
char *ch = "abc\nasdf";
if((fp = fopen("abc.txt","w"))==NULL)
{
printf("文件打开失败!");
}
fputs(ch,fp);
fclose(fp);
if((fp = fopen("abc.txt","r"))==NULL)
{
printf("文件打开失败!");
}
fgets(a,2,fp);
printf("%s\n",a);
fclose(fp);
free(a);
}
老牛来学习 发表于 2020-5-5 20:54
我用你的代码也有这个警告,修改完了跟你一样。‘
报了什么错?截图 老牛来学习 发表于 2020-5-5 20:54
我用你的代码也有这个警告,修改完了跟你一样。‘
那个是提示编码不对的,不用管应该也没问题
你用的是什么编辑器?编译器?
用记事本
打开
另存为
选择编码 ANSI
再试
都已经提示很清楚了
文件编码为UTF8
用UE十六进制模式打开,可以看到文件头
你的编译器不支持 U8编码
vs2019是支持的
人造人 发表于 2020-5-5 20:58
那个是提示编码不对的,不用管应该也没问题
你用的是什么编辑器?编译器?
Code blocks Mondayisgood 发表于 2020-5-5 21:01
用记事本
打开
另存为
好了,但是之前一直用的UTF-8都可以艾{:10_277:}
页:
[1]