菜鸟c语言问题,如何根据用户输入的数值决定输出的文件名,求大神解答

u012418561 2014-02-19 06:06:35
需求:输出一个N * N 乘法表到一个文件中,N由用户决定,文件名为"N * N chengfb.txt",例如:用户输入13,则在文件名为"13 X 13 chengfb.txt"的文件中输入一个13*13的乘法表。
我的思路是这样子:用一个字符串数组存放文件名,但是有一个问题就是怎么把一个int型数据转化为char。下面是我的代码:

#include<stdio.h>
#include<string.h>
int main()
{
int i=0,j=0,n=0;
char file_name[20],*pstr; //存放文件名
pstr=file_name;
FILE* fpin;
printf("输出几阶乘法表?");
while(n<1 || n>99) //输入数字限制在1~99之间
{
scanf("%d",&n);
if(n<1 || n>99)
{
printf("数字大于99或非法,请重新输入!\n");
}
}

//修改文件名为“n X n chengfb.txt”,存放在file_name中
//下面是出错的地方
//*pstr=((char)n);//刚开始这样写,但是存进去的是ASCII码,输出后不是数字,还出错
strcpy(pstr,(char)n);pstr++;
strcpy(pstr," X ");pstr+=3;
strcpy(pstr,(char)n);pstr++;
strcpy(pstr," chengfb.txt");


if((fpin = fopen(file_name,"w")) == NULL) //打开文件
{
printf("无法打开文件!\n");
system("pause");
exit(1);
}
for(i=1;i<=n;i++)
{
for(j=1;j<=i;j++)
{
fprintf(fpin,"%d X %d = %-3d ",i,j,j*i);
}
fputc('\n',fpin);

}
fclose(fpin);

printf("已输出到当前目录下,文件名为“%d X %d chengfb.txt”\n",n,n);

system("pause");


}



还有个问题是如果用宏的话,参数如果在字符串里有没有办法传递参数,这个能解决么


#define openfile(n) fopen("n X n chengfb.txt","w")


大神们还有什么办法能实现这个需求
谢谢大神们解答~
...全文
421 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
u012418561 2014-02-22
  • 打赏
  • 举报
回复
忘了还有sprintf,谢谢各位
derekrose 2014-02-21
  • 打赏
  • 举报
回复
引用 1 楼 u012418561 的回复:
我去,帖子写一半手残碰到回车,竟然发出去了,论坛能不能改改。
可以改 联系我
baichi4141 2014-02-21
  • 打赏
  • 举报
回复
既然会用printf,就花几分钟看一下sprintf吧
赵4老师 2014-02-21
  • 打赏
  • 举报
回复
作为一个C程序员,对 scanf,sscanf,fscanf printf,sprintf,fprintf 这类函数的用法,还是要做到“拳不离手,曲不离口”的。
重庆-老白 2014-02-21
  • 打赏
  • 举报
回复
下面好像有个管理编辑之类的
starytx 2014-02-20
  • 打赏
  • 举报
回复
char file_name[20] = {0}; sprintf(file_name ,"%d X %dchengfb.txt" ,n,n);
Falleyes 2014-02-20
  • 打赏
  • 举报
回复
http://blog.sina.com.cn/s/blog_4ba5b45e0102durh.html
u012418561 2014-02-19
  • 打赏
  • 举报
回复
我去,帖子写一半手残碰到回车,竟然发出去了,论坛能不能改改。
内容概要:本文围绕碳排放流理论与混合整数线性规划(MILP)方法,开展源荷协同优化研究,旨在通过Matlab代码实现低碳、高效的能源系统调度。研究综合考虑电源侧、负荷侧及电网传输环节,构建了能够精确追踪碳排放流动路径的优化模型,并采用MILP方法进行多时段协同决策解,实现了对系统运行的全局优化。文中系统阐述了碳排放流的建模机制、源荷两侧的协同约束条件以及以碳排放最小化为核心的多目标函数设计方法,通过Matlab编程完成模型解与仿真验证,结果表明该方法能有效降低系统整体碳排放水平,提升清洁能源消纳能力,并优化能源资源配置效率。; 适合人群:具备一定电力系统、运筹学及低碳能源系统相关基础知识,熟悉Matlab编程环境,从事能源系统优化、综合能源管理、碳排放核算与调度、虚拟电厂等领域研究的科研人员、工程技术人员及研究生。; 使用场景及目标:①应用于虚拟电厂、区域综合能源系统、微电网等场景下的多时间尺度低碳优化调度;②实现电网中碳排放责任的精细化溯源与分摊,为碳交易机制下的经济激励与成本分摊提供量化依据;③为新型电力系统低碳化、清洁化转型提供科学的分析工具与决策支持手段。; 阅读建议:读者应结合文中提供的Matlab代码,深入理解碳排放流建模的数学逻辑与MILP优化问题的构建过程,重点关注目标函数与约束条件的数学表达形式及其物理意义,建议动手复现算例,通过调整参数和场景设置,探究不同因素对优化结果的影响,从而深化对源荷协同机制与碳流分配原理的认知。

33,315

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧