在我自己找了多种方法才解决问题后,我决定把这次过程记录下来,头疼。
代码
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
int main()
{
int t = 10;
for (t;t<100 ; t++)
{
char str[20] = “D:\\upon\\”;
char T[10] = {};
//命名
_itoa(t, T, 10); //将int 类型转换成char类型
strcat(str, T); //将字符串连接起来
strcat(str, ".txt");
FILE *fp4 = fopen(str, "w+");
//打开文件。如果文件不存在,会自动创建,注意选择w 或者w+
if (fp4 == NULL)
{
printf("%s", "Cannot open output file!\n");
exit(0);
}
fputs("R", fp4); //输入数据
fprintf(fp4, "%d\n", t);
fputs("Title = input success\n", fp4);
fprintf(fp4, "%-5s", "t");
fprintf(fp4, "%s\n", "FD");
fclose(fp4); //关闭文件
}
system("pause");
return 0;
}
结果 部分截图
创建了多个.txt文件
不局限于.txt文件,也可生成.dat文件,
将.txt换成.dat。
注意用fputs()和fprintf(),不要用fwrite()。
用fwrite()写入时,打开.txt文件会出现乱码。
fprintf()函数用法
https://blog.csdn.net/u012707739/article/details/77806780
fputs()函数用法
http://c.biancheng.net/view/238.html
问题
1.为什么会出现乱码呢?
请看http://c.biancheng.net/cpp/html/2936.html
2.C语言中输出格式
请看这位大佬
https://blog.csdn.net/perfectguyipeng/article/details/77807012
3.如果执行时出现unsafe的报错
‘fopen’:this function or variable may be unsafe
请看这位大佬
https://www.cnblogs.com/hnzsb-vv1130/p/6592938.html
4.为什么fputs()的内容写不进去 ?
打开一个文件,会自动产生文件缓冲,缓冲的作用是降低磁盘IO,提升性能
fputs fwrite fprintf将数据写到文件缓冲中,若缓冲满,则会自动将数据同步到硬盘上去
fflush 强行将缓冲中的数据同步到硬盘上去
fclose 文件关闭前,会自动将缓冲中数据同步到硬盘
若要实时将数据写硬盘,在fputs fwrite fprintf后调用fflush
但这必然会导致磁盘IO上升,可能会影响性能,折中点,可以定期调用一次。
当然,如果不是性能要求很高的,那可以随便调
fflush()函数用法
具体https://blog.csdn.net/qq_34793133/article/details/85713413
5.如果出现itoa报错
error C4996: ‘itoa’: The POSIX name for this item is deprecated
我用的是VS2017,所以用itoa()就报错了,改成_itoa()就好啦。
老版本VS是可以用itoa(),新版本改了,用itoa()会报错。
新版本改用_itoa()了。
具体看这个
https://blog.csdn.net/zhao3132453/article/details/82955078
想到什么写什么。。。。。。
我一个学C++的,没学过C的发誓再也不难为自己了!!!
脑阔痛。。。。。。