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

u012418561 u012418561 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
需求:输出一个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")


大神们还有什么办法能实现这个需求
谢谢大神们解答~
...全文

相关推荐

清华尹成C语言从菜鸟到高手.pdf

"《清华尹成C语言从菜鸟到高手》是一本系统介绍C语言学习路径的教程,旨在帮助读者从零基础逐渐成长为C语言的高手。该书分为三个主要部分:C语言的基础入门、跨平台编程实践和深入理解数据类型、运算符与表达式

尹成

C语言菜鸟基础教程之求1到100的和

本资源是一份C语言基础教程,专注于指导菜鸟学习如何求解1到100的整数和。教程首先通过数学方法展示了求和的过程,利用等差数列的求和公式S = (首项+末项) * 项数 / 2,得出结果为5050。然后

weixin_38670531

菜鸟驿站包裹管理系统.zip

输入/输出处理:用户界面是系统与用户交互的关键。C语言的scanf和printf函数可以实现标准输入输出,用于获取用户输入和显示系统反馈。

YiRano_0

C语言菜鸟基础教程之自定义函数

本篇C语言菜鸟基础教程专注于讲解如何创建和使用自定义函数。首先,让我们从理解C语言函数的基础概念入手。在C语言中,函数是一种可重用的代码块,用于执行特定任务并可以接受输入(形式参数)和返回值。函数定义

weixin_38500090

C语言菜鸟基础教程之Hello World

在这个C语言菜鸟基础教程中,我们首先了解了如何设置开发环境,包括推荐使用的编译器,如Mac上的Xcode和PC上的Dev C++。学习者将开始编写他们的第一个C语言程序——"Hello World!"

weixin_38557370
评论 8
收藏 已收藏
分享
返回顶部
u012418561
新手乐园 33,315 成员 41,769 内容