做数据结构实验时有一块文件操作要插入新的数据到txt文件,但是发生了诡异的事情,原本正常的字符串插入进去后出现了乱码,
就单独拉出来用printf打印一下字符串,诡异的是只要不进循环字符串就没问题,进了循环就会出现乱码,这究竟是什么问题?
#include<stdio.h>
#include<string.h>
int main()
{
int line = 11;
FILE* fp = NULL;
fp = fopen("./EX5.txt", "r");
char buff[20][255];
/*fscanf(fp, "%s", buff);
printf("%s\n", buff);*/
fclose(fp);
fp = fopen("./EX5.txt", "r");
char buf1[255] = "2021010902025 zhengxiongren" ;
for (int i = 0; i < 10; i++)
{
fgets(buff[i], 255, fp);
}
fclose(fp);
strcpy(buff[line], buf1);
printf("%s\n", buff[line]);
for (int i = 0; i < line; i++) {
printf("%s\n", buff[i]);
}
printf("%s\n", buff[line]);
fp = fopen("./EX5.txt", "w");
for (int i = 0; i < line; i++)
{
fputs(buff[i], fp);
}
/* while (i < line)
{
fputs(buff[i], fp);
i++;
}*/
/*fputs(buff[line], fp);*/
fclose(fp);
return 0;
}
包括把数据写入txt文件,只要单独插入,就不会有乱码,但只要一循环就会有,把for循环换成while也一样